在mongodb中如何根据不同的条件计算行数?

在mongodb中如何根据不同的条件计算行数?,mongodb,Mongodb,我在MongoDB中有一个包含年龄列的集合,是否可以在一个查询中统计年龄列低于(例如)10、介于10和30之间以及高于30的行数? i、 e.输出应如下所示: age cnt <=10 607 10< and < 30 304 >=30 405 age-cnt =30 405 (我发布的答案可能对某人有所帮助!)正如prasad_uuu所说,您可以通过使用 db.getCol

我在MongoDB中有一个包含年龄列的集合,是否可以在一个查询中统计年龄列低于(例如)10、介于10和30之间以及高于30的行数? i、 e.输出应如下所示:

age             cnt
<=10            607
10< and < 30    304
>=30            405
age-cnt
=30            405
(我发布的答案可能对某人有所帮助!)正如prasad_uuu所说,您可以通过使用

db.getCollection("users").aggregate([
    {
        $project: {
            item: 1,
            lessThan10: {  
                $cond: [ { $lt: ["$dob.age", 10 ] }, 1, 0]
            },
            moreThan10lessThan30: {  
                $cond: [ { $and: [ { $gte: ["$dob.age", 10 ] }, { $lte: ["$dob.age", 30 ] } ] }, 1, 0]
            },
            morethan30:{
                $cond: [{ $gt: ["$dob.age", 30]}, 1, 0]
            }


        }
    },
    {
        $group: {
            _id: "$item",
            lessthan10: { $sum: "$lessThan10" },
            between10and30: { $sum: "$moreThan10lessThan30" },
            morethan30:{$sum:"$morethan30"}

        }
    }
])
(我发布的答案可能对某人有所帮助!)正如prasad_uuu所说,你可以通过使用

db.getCollection("users").aggregate([
    {
        $project: {
            item: 1,
            lessThan10: {  
                $cond: [ { $lt: ["$dob.age", 10 ] }, 1, 0]
            },
            moreThan10lessThan30: {  
                $cond: [ { $and: [ { $gte: ["$dob.age", 10 ] }, { $lte: ["$dob.age", 30 ] } ] }, 1, 0]
            },
            morethan30:{
                $cond: [{ $gt: ["$dob.age", 30]}, 1, 0]
            }


        }
    },
    {
        $group: {
            _id: "$item",
            lessthan10: { $sum: "$lessThan10" },
            between10and30: { $sum: "$moreThan10lessThan30" },
            morethan30:{$sum:"$morethan30"}

        }
    }
])

到处张贴。关于的文档。这是否回答了您的问题?使它成为一个复制品..张贴关于。关于的文档。这是否回答了您的问题?把它复制。。