也许我的文档结构不太适合我要尝试的工作,但是经过一段时间的努力,我意识到$elemMatch
可能不是我的朋友。这是一个示例文档:
{
"field": {
"abc": {
x: 0,
str: "aaa"
},
"def": {
x: 1,
str: "bbb"
},
"ghi": {
x: 2,
str: "ccc"
}
}
}
我正在尝试构建一个查询,该查询查找满足“ field。$。x> 1”或任何程度的文档。基本上,第二级上的字段名称可以是任何名称。如果field
是一个数组,我猜想$elemMatch
会很漂亮。
答案 0 :(得分:1)
由于您不知道键的名称,因此必须使用$objectToArray,这会将xlFormatFromLeftOrAbove
转换为三个键值对的数组。然后,您可以运行$map在field
和$anyElementTrue上应用条件,以检查是否有任何项目符合指定条件:
x