标签:聚合 mongo db 查询 project user aggregate find match
一.聚合查询就是流式的对数据处理,分成各个阶段
1.当聚合查询只有一个阶段就和find没有差别,如:
如果聚合有至少一个阶段, 那么每一个阶段都是一个字典。 不同的阶段负责不同的事情, 每一个阶段有一个关键字。
有专门负责筛选数据的阶段“$match”, 有专门负责字段相关的阶段“$project”, 有专门负责数据分组的阶段“$group”等。
二.筛选数据阶段
1.关键字 $match
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个参数能怎么写, 这里就能怎么写。
三.筛选和修改字段
1.关键字 $project
作用1:过滤字段,只返回部分字段
db.example_user.aggregate([{$project: {字段过滤语句}}])
如:
db.example_user.aggregate([{$project: {'age':1,'name':1,'work':1}}])
作用2:在返回结果添加新字段
如:(注意,hello字段是原来不存在的)
db.example_user.aggregate([{$project: {'age':1,'name':1,'work':1,'hello':'wocao'}}])
标签:聚合,mongo,db,查询,project,user,aggregate,find,match 来源: https://www.cnblogs.com/tjp40922/p/13189474.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。