我有一个具有以下字段的实体:
var name: String?,
var metadata: org.bson.Document?,
var things: Map<String, MyObject> = mapOf(),
var other_things: Map<String, MyObject> = mapOf(),
@Indexed(unique = true) var hash: String?
things
和的键other_things
是它们各自MyObject
对象的哈希值。哈希中不包含点。当我保存实体时 - 地图已正确序列化并保存在 mongodb 中。
一个示例地图 - 直接取自我的 mongo 控制台(我已经屏蔽了这些MyObject
字段......):
{
"0xa5643bf27e2786816613d3eeb0b62650200b5a98766dfcfd4428f296fb56d043": {
"field": true,
"field1": [
{
"field1field": "foo",
"field1field1": "",
"field1field2": false
}
],
"field2": "sam",
"field3": []
},
"0xfce353f601a3db60cb33e4b6ef4f91e4465eaf93c292b64fcde1bf4ba6819b6a": {
"field": true,
"field1": [
{
"field1field": "bash",
"field1field1": "",
"field1field2": true
}
],
"field2": "bar",
"field3": []
},
"0xcdcd77c0992ec5bbfc459984220f8c45084cc24d9b6efed1fae540db8de801d2": {
"field": true,
"field1": [
{
"field1field": "mash",
"field1field1": "",
"field1field2": false
}
],
"field2": "baz",
"field3": []
}
}
但是,当我检索实体并打印任一地图的键时 -.
每个键前面都有一个,即输出println(entity.things.keys)
是
[.0xa5643bf27e2786816613d3eeb0b62650200b5a98766dfcfd4428f296fb56d043, .0xfce353f601a3db60cb33e4b6ef4f91e4465eaf93c292b64fcde1bf4ba6819b6a, .0xcdcd77c0992ec5bbfc459984220f8c45084cc24d9b6efed1fae540db8de801d2]
我不知道这里发生了什么,有人可以澄清一下吗?
注意地图是以前的Map<String, String>
,我没有这个问题
编辑我改变things
并other_things
成为一个List<MySuperObject>
有2个类型字段String
并且MyObject
稍微改变了mongodb中的结构(它被保存为一个数组) - 幻影.
消失了 - 但这并没有回答原来的问题......