如何查询哈希中的特定元素

时间:2017-08-25 19:10:34

标签: arrays mongodb hash

我有一个集合中的文档,如:

// Document One

{

"_id" : ObjectId("556411af7361123456"),
"owner_name": "emma",
"animal_weight" : [
    {
        "pet" : dog,
        "weight" : 112
    },
    {
        "pet" : cat,
        "weight" : 30
    }
]

}

{

"_id" : ObjectId("556411af736112345678910"),
"owner_name": "jenny",
"animal_weight" : [
    {
        "pet" : dog,
        "weight" : 100
    },
    {
        "pet" : animal,
        "weight" : 25
    }
]

}

我希望mongodb返回其狗的体重超过110的所有者(owner_name)的名称。查询应该是什么样的?基本上,数组'animal_weight'中有两个元素,每个元素(哈希)包括两个键值对(一个是宠物类型,狗或猫;另一个是宠物的重量)。如何在mongo查询中应用过滤器对狗的体重?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用$ elemMatch运算符进行查询:

  

$ elemMatch运算符匹配包含数组字段的文档,其中至少有一个元素符合所有指定的查询条件。

查询可能类似于:

db.pets.find({ "animal_weight": { $elemMatch: { pet: "dog", weight: {$gt: 110} } } }, {_id:0, owner_name:1})