我正在使用 Spring Boot (Kotlin) 和 Mongo 将一些数据保存到我的数据库中。
我的 Mongo 集合是这样定义的:
@Document(collection = "events")
data class Event(
val id: String,
val payload: JsonNode
)
然后,当我保存它时,我正在使用:
objectMapper.convertValue(it.payload)
但是我在数据库中看到的有点奇怪,它就像某种实际的内存表示,而我想要的是简单的键和值:
"payload": {
"_children": {
"title": {
"_children": {
"value": {
"_value": "Solutions green",
"_class": "com.fasterxml.jackson.databind.node.TextNode"
}
},
"_nodeFactory": {
"_cfgBigDecimalExact": false
},
"_class": "com.fasterxml.jackson.databind.node.ObjectNode"
},
"description": {
"_value": "Earum et debitis officiis porro distinctio quasi et.",
"_class": "com.fasterxml.jackson.databind.node.TextNode"
},
该有效负载可以包含任何内容,因此通用 Json 因此使用 JsonNode。
上面插入的是什么以及我实际上如何保存基本的 json 表示。
如有任何帮助,我们将不胜感激。
谢谢。
你应该自定义转换器 我发现了这个https://github.com/spring-projects/spring-data-mongodb/issues/2557 它对我有用