java - 在 Morphia 中没有相应定义的 MongoDB 字段会怎样?

标签 java morphia

我有一个项目结合了Python的MongoEngine和Java的Morphia。

Python部分用于前端,它使用MongoEngine进行文档建模。它存储了大量信息,并且前端经常发生变化,因此我必须经常添加或删除新字段。

Java 部分执行一些计算任务,它仅依赖于模型中的几个字段。将每个字段从 MongoEngine 映射到 Java 的 Morphia 模型可能会很乏味,因为我无论如何都不会在 Java 部分中使用它们。

在 Morphia 模型中,我只想声明我将要使用的变量/字段。 那么如果我不为 morphia 中的 mongo 文档字段声明相应的变量,会发生什么情况呢? 原来的python部分写的文档字段多了会被Morphia覆盖吗?

最佳答案

您需要小心:一个简单的 .save() 将用您的部分数据替换文档 - 您未在 Morphia 中映射的所有字段都将消失。

您要使用的是 partial update 。例如.set()操作正在被转换为 $set在 MongoDB 中——这只会更改您指定的字段,这就是您想要的。

我不确定这是否真的是一个很好的解决方案。我还会考虑要么绘制整个实体的 map ,要么完全避免 Morphia;您只使用了对象文档映射器的一个非常小的子集,并且可能可以使用普通的 Java 客户端实现相同的目的,并且不会产生困惑(并且维护也更好)。

关于java - 在 Morphia 中没有相应定义的 MongoDB 字段会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48491385/

相关文章:

java - Java API 中的空对象模式?

java - 如何从 DocumentListener 获取添加、删除或更改的字符?

java - 没有父 json 数组的重复 json 对象的 Json 响应

java - 使用 Morphia 和 Mongodb 持久化和检索 map map

java - 没有 map 的吗啡使用的类

orm - Morphia 用于 Scala

java - 有什么方法可以使用 mongoDB morphia 从 java 更新/替换 mongoDB 的整个文档?

java - 使用 ObjectId 的字符串表示形式搜索 mongo 文档

java - 关于 PropertyChangeListener 的推理正确吗?

java - 不断检查 boolean 值