MongoDB——聚合管道之$limit&$skip&$sort操作
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB——聚合管道之$limit&$skip&$sort操作相关的知识,希望对你有一定的参考价值。
目录
一、数据准备
-
准备数据集,执行脚本
var tags = ["nosql","mongodb","document","developer","popular"]; var types = ["technology","sociality","travel","novel","literature"]; var books=[]; for(var i=0;i<50;i++) var typeIdx = Math.floor(Math.random()*types.length); var tagIdx = Math.floor(Math.random()*tags.length); var tagIdx2 = Math.floor(Math.random()*tags.length); var favCount = Math.floor(Math.random()*100); var username = "xx00"+Math.floor(Math.random()*10); var age = 20 + Math.floor(Math.random()*15); var book = title: "book-"+i, type: types[typeIdx], tag: [tags[tagIdx],tags[tagIdx2]], favCount: favCount, author: name:username,age:age ; books.push(book) db.books1.insertMany(books);
二、聚合管道之$limit操作
2.1、聚合管道之$limit的概述
- 限制传递到管道中下一阶段的文档数
- 注意:当 $ sort在管道中的$ limit之前立即出现时,$sort操作只会在过程中维持前n个结果,其中n是指定的限制,而MongoDB只需要将n个项存储在内存中。
2.2、聚合管道之$limit的示例
-
返回管道传递给它的前5个文档
db.books1.aggregate([ $limit : 5 ])
三、聚合管道之$skip操作
3.1、聚合管道之$skip操作的概述
- 跳过进入stage的指定数量的文档,并将其余文档传递到管道中的下一个阶段
3.2、聚合管道之$skip的示例
-
返回跳过指定数量的文档,并将其余文档传递到管道中的下一个阶段
db.books1.aggregate([ $skip : 5 ])
四、聚合管道之$sort操作
4.1、聚合管道之$sort的概述
- 对所有输入文档进行排序,并按排序顺序将它们返回到管道。
- 排序顺序设置为1或-1,以分别指定升序或降序排序。
4.2、聚合管道之$sort的语法
-
语法
$sort: <field1>: <sort order>, <field2>: <sort order> ...
4.3、聚合管道之$sort的示例
-
对收藏数降序排序、标题进行升序排序
db.books1.aggregate([ $sort : favCount:-1,title:1 ])
以上是关于MongoDB——聚合管道之$limit&$skip&$sort操作的主要内容,如果未能解决你的问题,请参考以下文章