您当前的位置: 首页 >  mongodb

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MongoDB——聚合管道之$match和$count操作

小志的博客 发布时间:2022-04-21 23:37:35 ,浏览量:0

目录
    • 一、聚合管道之$match的概述
    • 二、聚合管道之$count的概述
    • 三、数据准备
    • 四、聚合管道之$match操作示例
    • 五、聚合管道之$count的示例

一、聚合管道之$match的概述
  • $ match用于对文档进行筛选,之后可以在得到的文档子集上做聚合,$ match可以使用除了地理空间之外的所有常规查询操作符,在实际应用中尽可能将$ match放在管道的前面位置。这样有两个好处:一是可以快速将不需要的文档过滤掉,以减少管道的工作量;二是如果再投射和分组之前执行$match,查询可以使用索引。
  • 筛选管道操作和其他管道操作配合时候时,尽量放到开始阶段,这样可以减少后续管道操作符要操作的文档数,提升效率。
二、聚合管道之$count的概述
  • 计数并返回与查询匹配的结果数。
三、数据准备
  • 准备数据集,执行脚本

    var tags = ["nosql","mongodb","document","developer","popular"];
    var types = ["technology","sociality","travel","novel","literature"];
    var books=[];
    for(var i=0;i db.books1.find()
    

    在这里插入图片描述

  • 查询books1集合中type字段为technology的所有数据

    db.books1.aggregate([{$match:{type:"technology"}}])
    

    在这里插入图片描述

五、聚合管道之$count的示例
  • 查询books1集合中的数据

    > db.books1.find()
    

    在这里插入图片描述

  • 计数并返回与查询匹配的结果数

    (1)、$ match阶段筛选出type匹配technology的文档,并传到下一阶段; (2)、$ count阶段返回聚合管道中剩余文档的计数,并将该值分配给type_count

    db.books1.aggregate([ {$match:{type:"technology"}}, {$count: "type_count"} ])
    

    在这里插入图片描述

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0399s