mongodb数组查询问题


  • Lv 1

    有这样一个数据{

    "_id": ObjectId("58d4e63eea376b179080339b"),
    "proName": "深圳",
    "proCulturals": [
        { "isPublish": true, "_id": ObjectId("58d4e75eea376b17908033a3") },
        { "isPublish": false, "_id": ObjectId("58d4e75eea376b17908033a2") },
        { "isPublish": false, "_id": ObjectId("58d4e75eea376b17908033a1") },
        { "isPublish": true, "_id": ObjectId("58d4e75eea376b17908033a0") },
        { "isPublish": false, "_id": ObjectId("58d4e75eea376b179080339f") },
        { "isPublish": true, "_id": ObjectId("58d4e75eea376b179080339e") },
        { "isPublish": false, "_id": ObjectId("58d4e75eea376b179080339d") },
        { "isPublish": false, "_id": ObjectId("58d4e75eea376b179080339c") }
    ],
    "proDescription": "测试",
    

    }

    我该怎么得到 isPublish 为true的数组元素的个数


  • Lv 1

    用aggregate的方式,先將裡面的數組拆開,在選擇要顯示的項目,條件篩選後計算數量

    db.collection.aggregate([
           {$unwind:'$proCulturals'},
           {$project:{'isPublish':'$A.isPublish'}},
           {$match:{'isPublish':true}},
           {$group:{_id:'$_id','count':{$sum:1}}}
    ])

登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待