我有以下格式的JSON文档,
doc1
"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": {}
}
}
}
doc2
"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>)
在MySQL JSON文档存储中添加了这些文档。在我的JSON文档中,归档的dynamic_field1
和dynamic_field2
是动态字段,对于要插入的每个文档,它都是动态的。添加完这些文档后,我希望使用过滤器static_field1.*.static_field11.static_field114="value4"
获取这些文档。据我所知,在字段中使用*
作为通配符不会像select col* from table
那样。那么,有什么方法可以克服这一点,以便在现场使用通配符查找文档?还是对于这种动态JSON文档,还有其他更好的方法来解决这种情况吗?我尝试了Elasticsearch
,它有些起作用,但是当我将这种通配符查询与多个通配符字段一起使用时,它会崩溃。