2013-10-24 25 views
2

我从文档中得到的是,它作为一个单独的进程在其他机器上运行,我可以使用mongo db客户端驱动程序与java通信,我可以执行正常操作。嵌入在java中的MongoDB

但我怀疑如果我可以在我的Java应用程序中使用MongoDB作为嵌入式数据库?我的意思是,不是在其他机器上作为单独的进程,也不是在同一台机器上作为单独的进程。它应该是Java应用程序的一部分。

你能帮我吗?

+4

[可以将mongodb用作嵌入式数据库吗?](http://stackoverflow.com/questions/6115637/can-mongodb-be-used-as-an-embedded-database) – zero323

回答

8

不,这是不可能的。 MongoDB是一个本地C++应用程序,它使用内存映射文件,打开套接字等。它不会在JVM中运行。另外,MongoDB是为网络规模应用程序,大数据,故障转移群集(副本集)和自动分片而设计的,其中没有一个在嵌入式应用程序中确实有意义。此外,它在内存使用方面非常积极,这对于嵌入式应用程序来说是不希望的。

--edit后zero323的comment--

你可能想看看db4o为Java对象的数据库,被嵌入制造。

此外,在嵌入数据库时​​,许可证可能会咬你,并迫使你在同一许可证下释放你的代码,以防MongoDB为AGPL。

+0

...并且让您的整个代码感染AGPL可能非常麻烦,因为它要求您将许可证授权给通过网络使用它的每个人。使用普通的GPL应用程序时,只有在您的服务器上运行时才能保留源代码。 – Philipp