Можно ли использовать mongodb как встроенную базу данных?
Я работаю над приложением для чтения RSS. И мне нужно найти базу данных. Я хочу, чтобы база данных была внедрена, потому что я не хочу, чтобы пользователи устанавливали сервер базы данных.
Я знаю, что SQLite - хороший выбор, но мне интересно, есть ли другие варианты nosql?
Ответы
Ответ 1
В соответствии с группой Google, да, это возможно, но она не описывает, как именно.
Да, но это некрасиво и будет заставляйте приложение использовать лицензию AGPL. Если вы заинтересованы взглянуть на то, как инструменты обрабатывают параметр -dbpath.
Источник: http://groups.google.com/group/mongodb-user/browse_thread/thread/463956a93d3fb734?pli=1
Если вы используете .NET, один параметр может быть RavenDB, который является базой данных документа и может быть встроен.
Ответ 2
(У меня еще нет 50 рецензий, чтобы прокомментировать и утвердить принятый ответ, иначе я бы, извините!)
Вы можете встроить MongoDB в свое OEM-решение, но есть две вещи, которые следует учитывать:
-
Он написан на С++, поэтому, если вы кодируете на другом языке, вам может потребоваться написать оболочку, которая запускает процесс базы данных отдельно.
-
MongoDB лицензируется под лицензией Gnu AGPL-3.0, которая является копией лицензии на сервер. В принятом ответе и котировке группы Google оба утверждают, что это обычно заставляет вас также иметь лицензию AGPL. Тем не менее, MongoDb заявляет, что намерение лицензии состоит в том, чтобы разрешить доработку их кода, и ваш продукт останется отдельным. Это заставляет меня думать, что нормальные правила копирования слева не применяются.
Цель лицензии сервера - потребовать, чтобы улучшения в MongoDB были выпущены сообществу. Традиционный GPL часто этого не достигает, поскольку огромное количество программного обеспечения работает в облаке. Например, Google не обязан выпускать свои улучшения в ядре MySQL - если они им нравятся.
Чтобы сделать это выше, мы обещаем, что ваше клиентское приложение, использующее базу данных, является отдельной работой. Чтобы облегчить это, драйверы, поддерживаемые mongodb.org(часть, которую вы связываете с вашим приложением), выпускаются под лицензией Apache, которая является бесплатной. Примечание: если вы хотите, чтобы подписанное письмо, подтверждающее вышеуказанное обещание, запросило по электронной почте.
Источник: http://www.mongodb.org/display/DOCS/Licensing
Ответ 3
Пожалуйста, проверьте https://github.com/Softmotions/ejdb
Этот проект разрабатывается для решения этой проблемы.
Ответ 4
Как насчет Couchbase Lite? Это открытая база данных встраиваемых документов. Хотя он может функционировать как отдельная база данных документов, его реальная ценность заключается в возможности синхронизации с удаленными базами документов. Он может быть нацелен на iOS/Android, но он может работать на любом с JVM.
https://github.com/couchbase/couchbase-lite-java
Ответ 5
Нет прямого способа пересылки MongoDB в качестве встроенной библиотеки с точки зрения хорошо используемой библиотеки. Элиот - глава 10gen - говорил о "было бы неплохо иметь его" - но нет ничего доступного, который можно было бы использовать повторно разумным способом.
Ответ 6
Похоже, что многие OEM-производители пытаются подключить Mongo к своему оборудованию и устройствам для обработки в реальном времени. Ссылка с сайта MongoDBs