在mongodb中如何根据不同的条件计算行数?
我在MongoDB中有一个包含年龄列的集合,是否可以在一个查询中统计年龄列低于(例如)10、介于10和30之间以及高于30的行数? i、 e.输出应如下所示:在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
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"}
}
}
])
到处张贴。关于的文档。这是否回答了您的问题?使它成为一个复制品..张贴关于。关于的文档。这是否回答了您的问题?把它复制。。