如何找到多个匹配的子元素

时间:2017-06-27 10:38:22

标签: node.js mongodb mongoose

在我的nodejs应用程序中,我想找到与标签匹配的项目。

我有一个带标签的对象:

{
    "name": "object1",
    "labels": [
        {"name": "label1"},
        {"name": "label2"}
    }
}

从这个系列中,我想找到与用户提供的标签相匹配的所有商品。 (/api/findLabels/label1,label2)

此时,我知道我可以使用此查询在MongoDB中找到它:

db.getCollection('items')
    .find(
        {'labels': {
            $elemMatch: 
                {'name': 'label1', 'name': 'label2'}
        }}

但是,我似乎遇到了在Node.js中构建查询的问题。

此时,我有:

Item.find(
    {
        'labels':
        {
            $elemMatch: labels
        }
    }).exec(function(err, items){
        ...
    })

但是如何为labels参数构建正确的结构? 使用新值设置一个键不止一次只是替换值,而不是将其添加到列表中,这是有道理的。

有什么想法吗?

0 个答案:

没有答案