检查数组中元素的长度是否等于数组中元素的总数

时间:2018-09-27 10:54:27

标签: mongodb mongodb-query aggregation-framework

我有一个数组变量var arrays=[]; 在该arrays变量中,values是一个数组

arrays = [
    { 
        _id: 1,
        values: [
           { checked: true },
           { checked: false },
           { checked: true }
        ]
    }
]

我想获取arrays变量中checked变量为true的计数:

db.getCollection('details').aggregate([
    { "$unwind": "$arrays" }, 
    { "$group": { 
        "_id": { 
            "istrue": {"$arrays.values"}
        }, 
        "count": { "$sum": 1 } 
    }
    }
])

我尝试过,但是没用

1 个答案:

答案 0 :(得分:0)

汇总的第一部分是确定,如果要计算每个检查状态,则需要按“值”重新展开。

db.getCollection('details').aggregate([
    { "$unwind": "$arrays" },
    { "$unwind": "$arrays.values" }, //add this line to make sure you consider every occurences
    { "$group": { 
        "_id": { 
            "istrue": {"$arrays.values"}
        }, 
        "count": { "$sum": 1 } 
    }
    }
])