如何在MongoDB中查询具有多个值的嵌套对象?

时间:2013-09-12 16:34:17

标签: mongodb

我的MongoDB架构中有嵌套对象数组。让我们说,

var Post = {
    "title": "Some title",
    "advertisers" : [
        {
            "category" : "Tech",
            "name" : "Henry",
            "city" : "New york",
            "updated_at" : ISODate("2011-07-26T21:02:19Z"),
            "created_at" : ISODate("2011-07-26T21:02:19Z")
        },
    ]
}

我想根据嵌套模式中的多个值找到帖子。例如

Post.find({ 'advertisers.category' : 'Tech', 'advertisers.city': 'New York' }); 

返回符合上述标准之一的帖子。但我想要与两者相匹配的帖子。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以使用$elemMatch运算符执行此操作:

Post.find({ advertisers: {$elemMatch: {category: 'Tech', city: 'New York' }}})