在mongodb中匹配数组中的多个条件

时间:2020-04-19 19:52:57

标签: arrays mongodb

我需要匹配MongoDB中多个条件的帮助

{
    "id": "kul",
    "powers": [
        {
            "label": "a",
            "Rating": 7
        },
        {
            "label": "b",
            "Rating": 3
        },
        {
            "label": "c",
            "Rating": 4
        },
        {
            "label": "d",
            "Rating": 5
        }
    ],
    "phy": {
        "height": 67,
        "weight": 150
    }
}

我只想过滤具有label = crating > 4电源weight > 150的记录

2 个答案:

答案 0 :(得分:1)

我想您需要使用$elemMatch,请尝试以下操作:

db.collection.find({
    "powers": {
        "$elemMatch": {
            "label": "c",
            "Rating": {
                $gt: 4
            }
        }
    },
    "phy.weight": {
        $gt: 150
    }
})

答案 1 :(得分:0)

{
  "powers.label": "c",
  "powers.Rating": {
    $gt: 4
  },
  "phy.weight": {
    $gt: 150
  }
}