Могу ли я использовать MongoDB в качестве замены CoreData на iOS? - PullRequest
21 голосов
/ 02 марта 2011

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

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

Потому что это похоже на JSON и похоже, что оно может работать очень быстро; Я заинтересован в реализации NoSQL поверх Core Data.

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

Например:

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

Спасибо

Ответы [ 8 ]

20 голосов
/ 03 марта 2011

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

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

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

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

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

4 голосов
/ 02 марта 2011

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

3 голосов
/ 03 марта 2011

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

2 голосов
/ 15 августа 2012

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

1 голос
/ 01 мая 2019

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

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

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

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

1 голос
/ 02 марта 2011

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

0 голосов
/ 10 июня 2016

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

https://github.com/paulmelnikow/ObjCMongoDB

Особенности

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

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

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

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

  • Стремится чувствовать себя как Какао, а не как Монго.Например, имена методов в MongoKeyedPredicate и MongoUpdateRequest являются естественными в Какао, хотя они не соответствуют базовым ключевым словам Mongo.

0 голосов
/ 27 августа 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...