我正在研究RSS阅读器应用程序。我需要找到一个后端数据库。我希望嵌入数据库,因为我不希望用户安装数据库服务器。
我知道SQLite是一个不错的选择,但我想知道是否还有其他nosql选择?
答案 0 :(得分:52)
(我还没有50个回复点来评论和建立,接受的答案;否则我会,抱歉!)
您可以在您的OEM解决方案中嵌入MongoDB,但有两件事需要考虑:
它是用C ++编写的,所以如果你用不同的语言编写代码,你可能需要编写一个单独启动数据库进程的包装器。
MongoDB是根据Gnu AGPL-3.0许可的,这是一个副本左服务器许可证。接受的答案和Google小组报价都正确地说明这通常会迫使您获得AGPL许可。但是,他们MongoDb声明许可的意图是允许提交其代码的改进,并且您的产品将保持独立。这使我认为正常的副本左规则不适用。
服务器许可证的目标是要求将MongoDB的增强功能发布到社区。传统的GPL通常不会实现这一点,因为大量的软件在云中运行。例如,谷歌没有义务发布他们对MySQL内核的改进 - 如果他们这样做的话他们很好。
为了实现上述目标,我们承诺使用数据库的客户端应用程序是一项单独的工作。为了实现这一点,mongodb.org支持的驱动程序(与您的应用程序链接的部分)是在Apache许可下发布的,这是免费的copyleft。注意:如果您想签署一份声明上述承诺的签名信,请通过电子邮件索取。
答案 1 :(得分:19)
根据谷歌集团的说法,是的,它可以,但它没有详细说明。
是的,但它并不漂亮而且会 强制您的应用获得AGPL许可。如果 你有兴趣看看如何 这些工具处理--dbpath选项。
来源:http://groups.google.com/group/mongodb-user/browse_thread/thread/463956a93d3fb734?pli=1
如果您使用的是.NET,则一个选项可能是RavenDB,它是一个文档数据库,可以嵌入。
答案 2 :(得分:14)
请结帐https://github.com/Softmotions/ejdb 正在开发此项目以解决此问题。
答案 3 :(得分:4)
Couchbase Lite怎么样?它是一个开源的,可嵌入的文档数据库。虽然它可以作为独立的文档数据库运行,但它的真正价值在于它能够与远程文档数据库同步。它可能针对iOS / Android,但它可以在任何带有JVM的东西上运行。
答案 4 :(得分:2)
在可重用的库中,没有直接的转发方式将MongoDB用作嵌入式库。艾略特 - 10gen的负责人 - 谈到“有一个人会很高兴” - 但没有什么可以以理智的方式重复使用。
答案 5 :(得分:0)
看起来很多原始设备制造商正试图让Mongo使用他们的硬件和设备进行实时处理。 A link from MongoDBs website