我有以下格式的 JSON 文档,
文档1
"static_field1": {
"dynamic_field1": {
"static_field11": {
"static_field111": "value1",
"static_field112": "value2",
"static_field113": "value3",
"static_field114": "value4",
"static_field115": {
"dynamic_field111": "value5"
},
"static_field116": "value6"
},
"static_field12": {
"dynamic_field111": [
"value7"
]
},
"static_field13": {
"dynamic_field1111": {}
}
}
}
文档2
"static_field2": {
"dynamic_field2": {
"static_field21": {
"static_field111": "value11",
"static_field112": "value21",
"static_field113": "value31",
"static_field114": "value41",
"static_field115": {
"dynamic_field211": "value51"
},
"static_field116": "value61"
},
"static_field12": {
"dynamic_field211": [
"value71"
]
},
"static_field13": {
"dynamic_field2111": {}
}
}
}
我已使用db.testdata.add(<json_doc>)
. 在我的 JSON 文档中,归档dynamic_field1
和dynamic_field2
是动态字段,对于我将插入的每个文档都是动态的。添加这些文档后,我想使用过滤器获取文档static_field1.*.static_field11.static_field114="value4"
。就我*
在该领域使用通配符的理解而言,它不会像select col* from table
. 那么有什么办法可以克服这个问题,在现场使用通配符查找文档呢?或者对于这种动态 JSON 文档,还有其他更好的方法来解决这种情况吗?我尝试Elasticsearch
了它的工作原理,但是当我将这种通配符查询与多个通配符字段一起使用时它会崩溃。