Можно ли использовать mongodb в качестве встроенной базы данных? - PullRequest
57 голосов
/ 24 мая 2011

Я работаю над приложением для чтения RSS. И мне нужно найти базу данных бэкэнда. Я хочу, чтобы база данных была встроена, потому что я не хочу, чтобы пользователи устанавливали сервер базы данных.

Я знаю, что SQLite - хороший выбор, но мне интересно, есть ли другие варианты для nosql?

Ответы [ 6 ]

53 голосов
/ 01 марта 2012

(у меня еще нет 50 точек повторения, чтобы комментировать и опираться на принятый ответ; в противном случае я бы, извините!)

Вы можете встроить MongoDB в свое решение OEM, но следует учитывать две вещи:

  1. Он написан на C ++, поэтому, если вы кодируете на другом языке, вам может понадобиться написать обертку, запускающую процесс базы данных отдельно.

  2. MongoDB лицензируется в соответствии с Gnu AGPL-3.0, которая является копией левой серверной лицензии. В принятом ответе и в цитате группы Google правильно указано, что это обычно заставляет вас также иметь лицензию AGPL. Тем не менее, они MongoDb заявляют, что цель лицензии состоит в том, чтобы разрешить отправку уточнений в их код, и что ваш продукт останется отдельным. Это заставляет меня думать, что обычные левые правила копирования не применяются.

Цель серверной лицензии - потребовать, чтобы усовершенствования MongoDB были опубликованы для сообщества. Традиционная GPL часто этого не добивается, поскольку в облаке работает огромное количество программного обеспечения. Например, Google не обязан выпускать свои улучшения для ядра MySQL - если они это делают, они хороши.

Чтобы сделать вышесказанное практичным, мы обещаем, что ваше клиентское приложение, которое использует базу данных, является отдельной работой. Для этого драйверы, поддерживаемые mongodb.org (часть, которую вы связываете с вашим приложением), выпускаются под лицензией Apache, которая не содержит авторских прав. Примечание: если вы хотите подписать письмо с подтверждением вышеуказанного обещания, пожалуйста, сделайте запрос по электронной почте.

Источник: http://www.mongodb.org/display/DOCS/Licensing

19 голосов
/ 24 мая 2011

Согласно Google Group, да, это возможно, но это не касается того, как именно.

Да, но это не красиво и заставит ваше приложение иметь лицензию AGPL.Если вам интересно, посмотрите, как инструменты обрабатывают опцию --dbpath.

Источник: http://groups.google.com/group/mongodb-user/browse_thread/thread/463956a93d3fb734?pli=1

Если вы используете .NET, один из вариантов может быть RavenDB , который является базой данных документов и может быть встроен.

14 голосов
/ 28 октября 2012

Пожалуйста, проверьте https://github.com/Softmotions/ejdb Этот проект разрабатывается для решения этой проблемы.

4 голосов
/ 11 апреля 2014

Как насчет Couchbase Lite? Это открытая, встраиваемая база данных документов. Хотя он может функционировать как отдельная база данных документов, его реальная ценность заключается в возможности синхронизации с удаленными базами документов. Он может быть нацелен на iOS / Android, но может работать на чем угодно с JVM.

https://github.com/couchbase/couchbase-lite-java

2 голосов
/ 25 мая 2011

Не существует прямого способа использовать MongoDB в качестве встроенной библиотеки в терминах хорошо повторно используемой библиотеки.Элиот, глава 10gen, говорил о «было бы неплохо иметь его», но нет ничего доступного, что можно было бы использовать в разумной степени.

0 голосов
/ 02 июня 2015

Похоже, что многие OEM-производители пытаются установить Mongo на свое оборудование и устройства для обработки в реальном времени. Ссылка с сайта MongoDBs

...