如果聚合有至少一个阶段, 那么每一个阶段都是一个字典。 不同的阶段负责不同的事情, 每一个阶段有一个关键字。
有专门负责筛选数据的阶段“$match”, 有专门负责字段相关的阶段“$project”, 有专门负责数据分组的阶段“$group”等。
db.getCollection("2020062401").aggregate([{$match:{和find完全一样的表达式}}])
如:
db.example_user.aggregate([{$match: {"age":{$lt:18}}}])
看上面的语句是不是和find一样?
db.example_user.find({"age":{$lt:18}})
聚合查询操作中的, “{‘$match‘: {和find完全一样的查询表达式}}”,“$match”作为一个字典的Key, 字典的Value和“find()”第1个参数完全相同。 “find()”第1个参数能怎么写, 这里就能怎么写。
db.example_user.aggregate([{$project: {字段过滤语句}}])
如:
db.example_user.aggregate([{$project: {‘age‘:1,‘name‘:1,‘work‘:1}}])
如:(注意,hello字段是原来不存在的)
db.example_user.aggregate([{$project: {‘age‘:1,‘name‘:1,‘work‘:1,‘hello‘:‘wocao‘}}])
3
如:
db.example_user.aggregate([{$project: {‘age‘:1,‘name‘:1,‘work‘:1,‘hello‘:‘wocao‘,‘cao‘:‘$age‘}}])
如:
db.example_user.aggregate([{$project: {‘age‘:‘this is age‘,‘name‘:1,‘work‘:1}])
原文:https://www.cnblogs.com/tjp40922/p/13189474.html