Подтвердить что ты не робот

Могу ли я использовать MongoDB в качестве замены CoreData на iOS?

Я только начинаю читать технологии NoSQL, такие как MongoDB и CouchDB. Мне интересно узнать, могу ли я использовать MongoDB или любую технологию NoSQL в качестве замены приложений Core Data.

Приложения с основными данными могут занять много времени, чтобы изучить и реализовать, особенно если ваше приложение является сложным, и вы просто хотите сделать некоторые простые добавления, изменения, удаления и запросы (материал CRUD).

Поскольку он похож на JSON и выглядит так, что он может работать очень быстро; Меня интересует реализация NoSQL по основным данным.

Можно ли запустить MongoDB как native? Я выполнил некоторые поисковые запросы Google, но на самом деле не смог получить ответы на конкретные ответы.

Например:

Я не уверен, что это за NoSQL на платформах iphone, поддерживается ли это, будет ли отказ команды Apple, если я отправлю приложение с NoSQL на него?

Спасибо

4b9b3361

Ответ 1

Как в сторону, я буду замечать, что это распространенное неправильное восприятие, но Core Data не является системой базы данных.

Вместо этого, это система управления графом объектов времени выполнения с постоянной привязкой в ​​качестве опции, если вы этого хотите. Основная функция - предоставить модельный слой шаблона проектирования Model-View-Controller. Таким образом, он имеет дело гораздо больше, чем просто получать данные на диск и с него.

У Core Data есть кривая обучения, но, по моему опыту, самым большим препятствием для многих лиц является обработка Core Data как своего рода объектно-ориентированной оболочки вокруг SQL. С этой точки зрения Core Data очень сбивает с толку, потому что кажется, что нужно учиться так много, что не имеет никакого отношения к упорству.

Использование базы данных, такой как SQLite, MongoDB и CouchDB для настойчивости, на самом деле не ускорит работу, потому что, хотя вы можете лучше понять, как они получают данные на диске и вне его, они вообще не помогут в управлении данными и отношение к другим объектам данных и объектам пользовательского интерфейса. У вас все еще должна быть модель данных, и вам придется закодировать все это вручную. Если ваша модель данных чрезвычайно проста, это займет больше времени, чем изучение основных данных.

Лучшим способом изучения Core Data является игнорирование того факта, что графический объект может быть сохранен вообще. Просто начните с перспективы, что у вас есть много объектов, которые представляют собой модель данных вашего приложения, и вам нужно управлять их атрибутами и отношениями.

Ответ 2

MongoDB, вероятно, не очень подходит. Сервер предполагает, что дисковое пространство не является ограничивающим фактором. Нынешний бит stabel (1.6.x) не обеспечивает долговечность данных в одном экземпляре. Он также использует файлы с отображением памяти, которые отлично работают на выделенных серверах, но вызовет много дискового сбоя и ненужного использования памяти на обычном ПК. У меня нет опыта работы с Core Data, но для меня это похоже на септированную нишу.

Ответ 3

MongoDB не предназначен для использования в качестве встроенной базы данных. Он разработан для скорости и масштабируемости и маловероятен для архитектуры встроенной ОС, такой как IOS. Однако говорить с некоторыми службами MongoDB в "облаке" через стандартные протоколы, такие как HTTP/S, не должно быть проблемой. Вам просто нужно написать веб-шлюз перед MongoDB.

Ответ 4

Я знаю, что это действительно старый вопрос, но я думал, что я все равно дам ответ. Couchbase имеет набор программ под названием SyncPoint, который включает TouchDB, который является сборкой CouchDB, созданной для запуска на iOS изначально и синхронизации с любой доступный в Интернете экземпляр CouchDB.

Ответ 5

CouchDBX http://www.couchone.com/get - это приложение Cocoa, которое связывает CouchDB с OSX-приложением, если это то, что вы ищете

Ответ 6

Хороший вопрос. Основные данные привязаны к схемам и миграциям, поэтому бессмысленно использовать их с базой данных NoSQL.

Я еще не пробовал ни одного из них, но есть некоторые заявленные решения:

  • Мобильная Couchbase кажется мертвой, но Couchbase работают над TouchDB - выглядит многообещающим, от большого игрока
  • IRL Gaming, кажется, сделал свой собственный ( не с открытым исходным кодом) (возможно, с титаном)
  • Если вы в порядке с хранилищем ключей/значений, TSDocDB на основе Токийского кабинета и NuLevelDB на основе LevelDB.

Определенно проверьте их.

Ответ 7

Для этого я рекомендую ObjCMongoDB. Является ли библиотека для MongoDB и BSON:

https://github.com/paulmelnikow/ObjCMongoDB

Функции

  • Простая кодировка и декодирование BSON с использованием словарей.

  • Встроенная поддержка массивов, словарей, встроенных объектов, строк, числа, даты, идентификаторы объектов и разные типы MongoDB.

  • Более сложное кодирование и декодирование на основе кодирования с кодировкой NSCoder схема. Надежный интерфейс делегатов позволяет реализовать кодирование и декодирование полностью вне классов модели, если это необходимо.

  • Автоматически кодирует и декодирует объекты Core Data. Используя интерфейс делегата кодера вы можете настроить поведение по умолчанию или просто реализуйте альтернативное поведение в классе сущности.

  • Цели, чтобы почувствовать Cocoa -подобие, а не Mongo-like. Например, имена методов в MongoKeyedPredicate и MongoUpdateRequest являются естественными в Cocoa, хотя они не соответствуют основным ключевым словам Mongo.

Ответ 8

MongoDB Mobile - это уменьшенная версия базы данных MongoDB, оптимизированная для работы на мобильных устройствах и устройствах IoT.

MongoDB Mobile состоит из двух основных частей:

Оптимизированная для мобильных устройств версия базы данных MongoDB, которая работает локально на устройстве, обеспечивая автономный доступ к данным. Родные Java (Android) и Swift (iOS) SDK, которые управляют операциями с базами данных более низкого уровня и предоставляют методы для взаимодействия с MongoDB Mobile и бэкэндом Stitch.

https://docs.mongodb.com/stitch/mongodb/mobile/mobile-features/