能不能在多条MongoDB
记录中,聚合查询,一次输出多个字段的总记录条数
比如
{ "month" : 3, "day" : 5, "year" : 2019 }
{ "month" : 2, "day" : 4, "year" : 2018 }
{ "month" : 3, "day" : 1, "year" : 2018 }
{ "month" : 5, "day" : 2, "year" : 2019 }
{ "month" : 5, "day" : 1, "year" : 2019 }
比如一次性查询: { month = 3, year = 2019 }
输出结果集: { monthCount = 2, yearCount = 3}
现在我只能根据字段去查找记录数,不能去给字段匹配相应的值去查询。
1
lwd219 2019-08-23 14:21:17 +08:00
aggregate ?
|
2
licht114 2019-08-23 14:53:05 +08:00
坐等 MongoDB 大神,我也想知道有没有骚操作
|
3
hengo OP @lwd219 对,以前我是一个一个查的,效率比较低,因为我们这边数据量可能比较大,所以想一次性查,效率稍微高一点。
|
4
Philippa 2019-08-23 15:45:59 +08:00
```
{ "$group": { "_id": null, "month": { '$sum': { '$cond': [ {'$eq': ["$month", "3"]}, 1, 0 ] } }, "year": { '$sum': { '$cond': [ {'$eq': ["$year", "2019"]}, 1, 0 ] } }, } }, {$project: { 'year': 1, 'month': 1, _id: 0 } } ``` 没测过 |
5
phpdever 2019-08-23 17:02:06 +08:00 1
|