web-dev-qa-db-fra.com

Mongodb peut-il être utilisé comme base de données intégrée?

Je travaille sur une application de lecture RSS. Et je dois trouver une base de données backend. Je souhaite que la base de données soit intégrée car je ne souhaite pas que les utilisateurs installent un serveur de base de données.

Je sais que SQLite est un bon choix, mais je me demande s'il y a d'autres choix nosql?

57
Bill Yan

Selon le groupe Google, oui, c'est possible, mais cela ne couvre pas exactement comment.

Oui, mais ce n'est pas joli et forcera votre application à obtenir une licence AGPL. Si vous êtes intéressé, regardez comment les outils gèrent l'option --dbpath.

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

Si vous utilisez .NET, une option peut être RavenDB , qui est une base de données de documents et peut être intégrée.

19
Joe Doyle

(Je n'ai pas encore 50 points de répétition pour commenter et développer la réponse acceptée; sinon je le regrette!)

Vous pouvez intégrer MongoDB dans votre solution OEM mais il y a deux choses à considérer:

  1. Il est écrit en C++, donc si vous codez dans un autre langage, vous devrez peut-être écrire un wrapper qui lance le processus de base de données séparément.

  2. MongoDB est sous licence Gnu AGPL-3.0 qui est une licence de serveur de copie à gauche. La réponse acceptée et la citation du groupe Google indiquent toutes deux correctement que cela vous obligerait normalement à être également titulaire d'une licence AGPL. Cependant, ils MongoDb déclare que l'intention de la licence est de permettre aux améliorations de leur code d'être renvoyées, et que votre produit restera séparé. Cela me fait penser que les règles de copie normale ne s'appliquent pas.

L'objectif de la licence serveur est d'exiger que des améliorations de MongoDB soient publiées dans la communauté. La GPL traditionnelle n'atteint souvent plus cet objectif car une énorme quantité de logiciels s'exécute dans le cloud. Par exemple, Google n'a aucune obligation de publier leurs améliorations au noyau MySQL - s'ils le font, ils sont gentils.

Pour rendre ce qui précède pratique, nous promettons que votre application cliente qui utilise la base de données est un travail distinct. Pour faciliter cela, les pilotes pris en charge par mongodb.org (la partie que vous liez à votre application) sont publiés sous licence Apache, qui est sans copyleft. Remarque: si vous souhaitez une lettre signée confirmant la promesse ci-dessus, veuillez en faire la demande par e-mail.

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

53
Steve McDowell

Veuillez vérifier https://github.com/Softmotions/ejdb Ce projet est en cours de développement pour résoudre ce problème.

14
Anton

Et Couchbase Lite? Il s'agit d'une base de données de documents open source et intégrable. Bien qu'il puisse fonctionner comme une base de données de documents autonome, sa véritable valeur réside dans sa capacité à se synchroniser avec des bases de données de documents distantes. Il peut être destiné à iOS/Android, mais il peut fonctionner sur n'importe quoi avec une JVM.

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

4
Shane

Il n'y a aucun moyen direct d'utiliser MongoDB en tant que bibliothèque intégrée en termes de bibliothèque bien réutilisable. Eliot - directeur de 10gen - a parlé de "ce serait bien d'en avoir un" - mais il n'y a rien de disponible qui puisse être réutilisé de manière saine.

2
Andreas Jung

Il semble que de nombreux OEM essaient de faire entrer Mongo sur leur matériel et leurs appareils pour un traitement en temps réel. n lien du site Web de MongoDBs

0
Praneesh