webentwicklung-frage-antwort-db.com.de

Kann Mongodb als eingebettete Datenbank verwendet werden?

Ich arbeite an einer RSS-Reader-Anwendung. Und ich muss eine Backend-Datenbank finden. Ich möchte, dass die Datenbank eingebettet wird, da die Benutzer keinen Datenbankserver installieren sollen.

Ich weiß, dass SQLite eine gute Wahl ist, aber ich frage mich, ob es noch andere nosql-Optionen gibt.

57
Bill Yan

Nach Angaben der Google-Gruppe ist dies zwar möglich, es wird jedoch nicht erläutert, wie genau.

Ja, aber es ist nicht schön und zwingt Ihre App, eine AGPL-Lizenz zu erhalten. Wenn Sie interessiert sind, schauen Sie sich an, wie die Tools mit der Option --dbpath umgehen.

Quelle: http://groups.google.com/group/mongodb-user/browse_thread/thread/463956a93d3fb734?pli=1

Wenn Sie .NET verwenden, ist eine Option möglicherweise RavenDB , eine Dokumentdatenbank, die eingebettet werden kann.

19
Joe Doyle

(Ich habe noch keine 50 Wiederholungspunkte, um die akzeptierte Antwort zu kommentieren und darauf aufzubauen; sonst würde es mir leid tun!)

Sie können MongoDB in Ihre OEM-Lösung einbetten, aber es gibt zwei Dinge zu beachten:

  1. Es ist in C++ geschrieben. Wenn Sie also in einer anderen Sprache codieren, müssen Sie möglicherweise einen Wrapper schreiben, der den Datenbankprozess separat startet.

  2. MongoDB ist unter der Gnu AGPL-3.0 lizenziert, einer Serverlizenz für Links. Die akzeptierte Antwort und das Google-Gruppenzitat besagen beide korrekt, dass Sie normalerweise gezwungen wären, auch eine AGPL-Lizenz zu erhalten. MongoDb gibt jedoch an, dass die Absicht der Lizenz ist, die Rückgabe von Verbesserungen an ihrem Code zu ermöglichen, und dass Ihr Produkt separat bleibt. Dies lässt mich denken, dass die normalen Regeln für das Zurücklassen von Kopien nicht zutreffen.

Ziel der Serverlizenz ist es, die Freigabe von Erweiterungen für MongoDB für die Community zu fordern. Herkömmliche GPL erreichen dies oft nicht mehr, da eine große Menge an Software in der Cloud ausgeführt wird. Zum Beispiel hat Google keine Verpflichtung, die Verbesserungen für den MySQL-Kernel zu veröffentlichen - wenn sie es tun, sind sie nett.

Wir versprechen, dass Ihre Client-Anwendung, die die Datenbank verwendet, eine separate Arbeit ist, um das oben Genannte praktisch zu machen. Um dies zu erleichtern, werden die von mongodb.org unterstützten Treiber (der Teil, den Sie mit Ihrer Anwendung verknüpfen) unter der Apache-Lizenz veröffentlicht, die Copyleft-frei ist. Hinweis: Wenn Sie einen unterschriebenen Brief wünschen, der das oben genannte Versprechen bestätigt, fordern Sie dies bitte per E-Mail an.

Quelle: http://www.mongodb.org/display/DOCS/Licensing

53
Steve McDowell

Bitte checkout https://github.com/Softmotions/ejdb Dieses Projekt wird entwickelt, um dieses Problem zu beheben.

14
Anton

Wie wäre es mit Couchbase Lite? Es ist eine Open Source, einbettbare Dokumentendatenbank. Obwohl es als eigenständige Dokumentendatenbank fungieren kann, liegt sein wirklicher Wert in der Synchronisierung mit entfernten Dokumentendatenbanken. Es ist möglicherweise für iOS/Android gedacht, kann jedoch auf allen JVM-Systemen ausgeführt werden.

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

4
Shane

Es gibt keine direkte Weiterleitung, um MongoDB als eingebettete Bibliothek im Sinne einer gut wiederverwendbaren Bibliothek zu verwenden. Eliot - Chef von 10gen - sprach von "es wäre schön, einen zu haben" - aber es gibt nichts, was auf vernünftige Weise wiederverwendet werden könnte.

2
Andreas Jung

Es sieht so aus, als würden viele OEMs versuchen, Mongo für die Echtzeitverarbeitung auf ihre Hardware und Geräte zu bringen. Ein Link von der MongoDB-Website

0
Praneesh