首页 > 其他 > 详细

mongo聚合查询

时间:2020-06-24 19:58:58      阅读:62      评论:0      收藏:0      [点我收藏+]

一.聚合查询就是流式的对数据处理,分成各个阶段

  1.当聚合查询只有一个阶段就和find没有差别,如:

技术分享图片

 

 

   如果聚合有至少一个阶段, 那么每一个阶段都是一个字典。 不同的阶段负责不同的事情, 每一个阶段有一个关键字。

有专门负责筛选数据的阶段“$match”, 有专门负责字段相关的阶段“$project”, 有专门负责数据分组的阶段“$group”等。

 

二.筛选数据阶段  关键字 $match

  1.示例

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个参数能怎么写, 这里就能怎么写。

 

三.筛选和修改字段   关键字 $project

    1.作用1:过滤字段,只返回部分字段

db.example_user.aggregate([{$project: {字段过滤语句}}])

  如:

db.example_user.aggregate([{$project: {age:1,name:1,work:1}}])

 

技术分享图片

    2.作用2:在返回结果添加新字段(字符串)

  如:(注意,hello字段是原来不存在的)

db.example_user.aggregate([{$project: {age:1,name:1,work:1,hello:wocao}}])

技术分享图片

   3

  3.作用3.:在返回结果复制现有字段

如:

db.example_user.aggregate([{$project: {age:1,name:1,work:1,hello:wocao,cao:$age}}])

 

技术分享图片

 

 

   4..作用4:在返回结果修改现有字段

如:

db.example_user.aggregate([{$project: {age:this is age,name:1,work:1}])

技术分享图片

 

 

 

   

 

mongo聚合查询

原文:https://www.cnblogs.com/tjp40922/p/13189474.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!