java - 使用 MongoDB/Morphia 中的对象以声明方式包装数组元素

标签 java mongodb morphia

我有一个旧的数据库结构,其中每个数组元素都包装为键值:

"field" : [
  {
    "_id" : ObjectId("123456789012345678901234")
  }, {
    "_id" : ObjectId("123456789012345678901235")
  }
]

我可以在 Java 中对其进行建模而不引入中间对象吗? 例如。类似的东西

@SomeMagicAnnotation("_id")
List<ObjectId> field;

最佳答案

Morphia 将需要一个类结构来映射这些文档。但是,您可以使用 @PostLoad迭代该数组并创建一个仅包含 ObjectId 的新数组值(value)观。一旦有了这个新数组,您就可以将其放回 DBObject 中。与 put("field", newArray) 。这将使其看起来像 ObjectID 的裸数组。值到 Morphia,然后 Morphia 可以将其映射到您的 List<ObjectID> .

关于java - 使用 MongoDB/Morphia 中的对象以声明方式包装数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41679130/

相关文章:

java - 为什么我的 ArrayList 包含添加到列表中的最后一项的 N 个副本?

java - 当 ReplicaSet MongoDB 中的节点发生故障时,更改事件流停止工作

javascript - 如何将数组对象更新到mongoDB

mongodb - 使用 Morphia 测试 MongoDB 集群

java - Jboss CLI : Expected [INT] but was STRING

java - 我应该使用哪种设计模式来按积分设置比赛 field ?

node.js - 在 node.js、mongoose 中过度使用 require()

java - 'Application' 中方法 init 的参数 0 需要类型为 'package' 的 bean,但无法找到

mongodb - 检索 MongoDB/Morphia 中的数组数组?

java - 修复 Java 内存泄漏的学习站点