查询匹配的Mongodb find()在一个对象上有两个匹配项

时间:2018-11-23 10:35:33

标签: mongodb mongodb-query

我是Mongo的新手,在构建查询时遇到问题!

数据:

{
    "_id" : 1,
    "ActiveState" : {
        "_id" : 1,
        "Products" : [ 
            {
                "ProductId" : 17,
                "Active" : true,             
            {
                "ProductId" : 17,
                "Active" : false,
            }, 
            {
                "ProductId" : 19,
                "Active" : true
            }, 
            {
                "ProductId" : 19,
                "Active" : false,
             },
        ],
    },
},
{
    "_id" : 2,
    "ActiveState" : {
        "_id" : 1,
        "Products" : [ 
            {
                "ProductId" : 17,
                "Active" : true,             
            {
                "ProductId" : 17,
                "Active" : true,
            }, 
            {
                "ProductId" : 19,
                "Active" : true
            }, 
            {
                "ProductId" : 19,
                "Active" : false,
             },
        ],
    },
}

查询:

db.getCollection('Asset')。find({$ and:[{'ActiveState.Products.ProductId':17,'ActiveState.Products.Active':true}]})

查询意图: 我想在满足以下条件的Products数组中找到该对象具有多个对象的所有实例:

ActiveState.Products.ProductId = 17 AND ActiveState.Products.Active = true;

我只希望返回对象_id:2,因为它有两个ProductProduct 17和Active true的产品。

非常感谢

0 个答案:

没有答案