搜索特定元素在数组mongodb中

时间:2016-08-16 08:12:09

标签: mongodb mongoose subdocument

我试图从mongodb中的对象数组中找到一个特定的对象。

我正在尝试这个

Company.findOne ({
"configuration.macAddress": "AB-90-dF-8d"
});

它返回确切的公司,但它返回所有配置数组 我只想配置匹配的macAddress

2 个答案:

答案 0 :(得分:0)

你可以使用$ elemMatch来查找数组中的特定对象。

Company.find({configuration:{$ elemMatch:{macAddress:" AB-90-dF-8d"}}}};

你能告诉我你的对象数组吗?

答案 1 :(得分:0)

而是使用aggregate()。 $首先展开配置数组,然后你只能匹配特定元素。

Company.aggregate([
    {
        "$unwind": "$configuration"
    },
    {
        "$match":{
            "configuration.macAddress": "AB-90-dF-8d"
        }
    }
]);