mongodb可以用作嵌入式数据库吗?

Bil*_*Yan 57 embedded-database mongodb

我正在研究RSS阅读器应用程序.我需要找到一个后端数据库.我希望嵌入数据库,因为我不希望用户安装数据库服务器.

我知道SQLite是一个不错的选择,但我想知道是否还有其他任何nosql选择?

小智 53

(我还没有50个回复点来评论和建立,接受的答案;否则我会,抱歉!)

您可以在您的OEM解决方案中嵌入MongoDB,但有两件事需要考虑:

  1. 它是用C++编写的,因此如果您使用不同的语言编写代码,则可能需要编写一个单独启动数据库进程的包装器.

  2. MongoDB是根据Gnu AGPL-3.0许可的,这是一个副本左服务器许可证.接受的答案和Google小组报价都正确地说明这通常会迫使您获得AGPL许可.但是,他们MongoDb声明许可证的意图是允许提交其代码的改进,并且您的产品将保持独立.这让我觉得正常的副本左边规则不适用.

服务器许可证的目标是要求将MongoDB的增强功能发布到社区.传统的GPL通常不会实现这一点,因为大量的软件在云中运行.例如,谷歌没有义务发布他们对MySQL内核的改进 - 如果他们这样做的话他们很好.

为了实现上述目标,我们承诺使用数据库的客户端应用程序是一项单独的工作.为了实现这一点,mongodb.org支持的驱动程序(与您的应用程序链接的部分)是在Apache许可下发布的,这是免费的copyleft.注意:如果您想签署一份声明上述承诺的签名信,请通过电子邮件申请.

资料来源:http://www.mongodb.org/display/DOCS/Licensing


Joe*_*yle 19

根据谷歌集团的说法,是的,它可以,但它没有涵盖究竟如何.

是的,但它并不漂亮,会迫使您的应用获得AGPL许可.如果您有兴趣,请查看这些工具如何处理--dbpath选项.

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

如果您使用的是.NET,则一个选项可能是RavenDB,它是一个文档数据库,可以嵌入.

  • 只是指出除非你的项目是开源的,否则RavenDB也是AGPL (3认同)
  • 很好的答案,但也请查看Steve McDowell的答案和许可来源http://www.mongodb.org/display/DOCS/Licensing (2认同)

小智 14

请结帐https://github.com/Softmotions/ejdb 正在开发此项目以解决此问题.


小智 5

Couchbase Lite 怎么样?它是一个开源的、可嵌入的文档数据库。虽然它可以作为一个独立的文档数据库运行,但它的真正价值在于它能够与远程文档数据库同步。它可能针对 iOS / Android,但它可以在任何带有 JVM 的设备上运行。

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