如何通过结构未知的文档中的键和值在mongo中进行搜索?
例如:
{
"accounting" : [
{ "firstName" : "John",
"lastName" : "Doe",
"age" : 23 },
{ "firstName" : "Mary",
"lastName" : "Smith",
"age" : 32 }
],
"sales" : [
{ "firstName" : "Sally",
"lastName" : "Green",
"age" : 27 },
{ "firstName" : "Jim",
"lastName" : "Galley",
"age" : 41 }
]
}
当我按“年龄”进行查询时,我想获得键龄如上的文档,以及具有年龄的文本值文档。有任何想法吗?
答案 0 :(得分:0)
尝试使用聚合框架:
db['01'].aggregate(
[
{
$project: {
root:{$objectToArray:"$$ROOT"}
}
},
{
$match: {
$or:[
{"root.v.age":23},
{"root.v.age":"23"}
]
}
},
{
$replaceRoot: {
newRoot: {$arrayToObject:"$root"}
}
},
],
);