MongoDB中管道有什么用

57次阅读
没有评论

共计 1103 个字符,预计需要花费 3 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 MongoDB 中管道有什么用,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

MongoDB 管道的介绍及操作符实例

一 介绍

管道在 Unix 和 Linux 中一般用于将当前命令的输出结果作为下一个命令的参数。
MongoDB 的聚合管道将 MongoDB 文档在一个管道处理完毕后将结果传递给下一个管道处理。管道操作是可以重复的。

表达式:处理输入文档并输出。表达式是无状态的,只能用于计算当前聚合管道的文档,不能处理其它的文档。

这里我们介绍一下聚合框架中常用的几个操作:

$project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。

$match:用于过滤数据,只输出符合条件的文档。$match 使用 MongoDB 的标准查询操作。

$limit:用来限制 MongoDB 聚合管道返回的文档数。

$skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。

$unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。

$group:将集合中的文档分组,可用于统计结果。

$sort:将输入文档排序后输出。

$geoNear:输出接近某一地理位置的有序文档。 

二 管道操作符实例

1、$project 实例

db.article.aggregate(
 { $project : {
 title : 1 ,
 author : 1 ,
 }}
 );

这样的话结果中就只还有_id,tilte 和 author 三个字段了,默认情况下_id 字段是被包含的,如果要想不包含_id 话可以这样:

db.article.aggregate(
 { $project : {
 _id : 0 ,
 title : 1 ,
 author : 1
 }});

2.$match 实例

db.articles.aggregate( [ { $match : { score : { $gt : 70, $lte : 90 } } },
 { $group: { _id: null, count: { $sum: 1 } } }
 ] );

$match 用于获取分数大于 70 小于或等于 90 记录,然后将符合条件的记录送到下一阶段 $group 管道操作符进行处理。

3.$skip 实例

db.article.aggregate( { $skip : 5 });

经过 $skip 管道操作符处理后,前五个文档被 过滤 掉。

关于“MongoDB 中管道有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计1103字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)