mongo聚合查询之 $bucket的作用:
大致说明:分段统计表的数据
$bucket用法支持mongo3.4及以上的版本
语法:先看字面意思做个大致了解
准备数据:
执行查询:
db.artwork.aggregate( [ { $bucket: { groupBy: "$price", // 对prices字段进行统计查询 boundaries: [ 0, 200, 400 ], // 数据的边界范围,包左不包右 default: "Other", // 不在boundaries内的默认名称 output: { "count": { $sum: 1 }, // 统计 "titles" : { $push: "$title" } // 将改范围内的title组成数组 } } } ] )
结果:
{ "_id" : 0, "count" : 4, "titles" : ["title1","title3","title4","title8"]
}// 0<=prices<200
{
"_id" : 200, "count" : 2, "titles" : [ "title2", "title6" ] }// 200<=prices<400 { "_id" : "Other", "count" : 2, "titles" : [ "title5", "title7" ] }// 不在0-400范围内的