MongoDB嵌入Java

Posted

技术标签:

【中文标题】MongoDB嵌入Java【英文标题】:MongoDB embedded in java 【发布时间】:2013-10-24 12:23:36 【问题描述】:

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

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

你能帮帮我吗?

【问题讨论】:

Can mongodb be used as an embedded database? 的可能重复项 【参考方案1】:

不,这是不可能的。 MongoDB 是一个原生 C++ 应用程序,它使用内存映射文件、打开套接字等。它不会在 JVM 中运行。

此外,MongoDB 是为 Web 规模应用程序、大数据、故障转移集群(副本集)和自动分片而设计的,这些在嵌入式应用程序中都没有真正意义。此外,它在内存使用方面非常激进,这对于嵌入式应用程序来说是不可取的。

--在zero323的评论后编辑--

您可能想看看 db4o 一个用于嵌入的 java 对象数据库。

此外,当嵌入数据库时​​,许可证可能会咬你并迫使你在相同的许可证下发布你的代码,在 MongoDB 的情况下是 AGPL。

【讨论】:

...让您的整个代码感染 AGPL 确实很麻烦,因为它需要您将其许可给通过网络使用它的每个人。对于普通的 GPL 应用程序,当它只在您自己的服务器上运行时,保留源代码是可以的。

以上是关于MongoDB嵌入Java的主要内容,如果未能解决你的问题,请参考以下文章

将对象添加到java mongodb中的数组

是否有嵌入式 MongoDB 的 GUI(Flapdoodle)

使用 mongodb 嵌入集合

Spring嵌入MongoDB

使用 Spring Data MongodB 更新嵌入式 mongodb 文档中的数组字段?

运行集成测试时嵌入 MongoDB