Mongo聚合查询

时间:2017-01-12 16:19:23

标签: mongodb

我有一个文档,我需要查询数组子文档。数据如下所示:

{
    "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" }}
])

但是现在我还需要将覆盖范围限制在上面。我想在同一个查询中这样做,但我不确定如何。或者更好地获取整个文档并使用代码来执行此操作?

0 个答案:

没有答案