我有一个文档,我需要查询数组子文档。数据如下所示:
{
"name" : "test",
"code" : 417,
"rates": {},
"coverage": [
{
"limit": 125,
"factors": {}
},
{
"limit": 130,
"factors": {}
},
{
"limit": 135,
"factors": {}
}
]
}
如果输入为127,我需要选择不超过限制的最高覆盖范围。我这样做是这样的:
db.getCollection('rates').aggregate([
{$match : {"name" : "test", "code": 417}},
{$unwind : "$coverage"},
{$match : { "coverage.limit": { $lte: 327 }}},
{$sort : { "coverage.limit": -1 }},
{$limit : 1 },
{$project : { "factors": "$coverage.factors" }}
])
但是现在我还需要将覆盖范围限制在上面。我想在同一个查询中这样做,但我不确定如何。或者更好地获取整个文档并使用代码来执行此操作?