我有一个旧的数据库结构,其中每个数组元素都包装为键值:
"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/