好不容易写的,得记录一下,免得找不到了
[
{
$match:
{
"from": 'h5player',
'code': {$in: ['init']}
}
},
{
$group:
{
"_id": {
code: '$code',
'cost': {
$switch: {
branches: [
{
case: {
$and: [{$gt: ["$cost", 0]}, {$lt: ["$cost", 100]}]
},
then: "0-100"
},
{
case: {
$and: [{$gt: ["$cost", 100]}, {$lt: ["$cost", 200]}]
},
then: "100-200"
},
{
case: {
$and: [{$gt: ["$cost", 200]}, {$lt: ["$cost", 300]}]
},
then: "200-300"
},
{
case: {
$and: [{$gt: ["$cost", 300]}, {$lt: ["$cost", 500]}]
},
then: "300-500"
},
{
case: {
$and: [{$gt: ["$cost", 500]}, {$lt: ["$cost", 1000]}]
},
then: "500-1000"
},
],
default: '1000-'
}
}
},
'sum': {$sum: 1},
}
},
{
$project: {
"_id": 0, "code": "$_id.code", "sum": 1, jcost: "$_id.cost"
}
}
];
先进行match,相当于进行了一次过滤,之后进行分组,分组的时候的关键字是code和cost,而cost是根据不同的数值的范围进行划分的,