我的收藏集中的文档如下:
{
"_id":"<uuid>",
"tests":[
{
"min":5,
"max":20
},
{
"min":15,
"max":35
}
]
}
现在,我想找到tests
中所有的min >= 5
。
db.coll.aggregate([
{ $match: { 'tests.min': {$gte : 5}} },
{ '$unwind': "$tests" }
]);
以上查询以某种方式未返回正确的结果。
答案 0 :(得分:1)
您无需为此编写汇总查询。为此,请使用$elemMatch
运算符。您的查询将如下所示
db.coll.find({
tests: {
$elemMatch: {
min: {
$gte: 5
}
}
}
})
以上查询将返回所需结果。 有关更多详细信息,请访问 $elemMatch (query)