抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

摘要:本文主要学习了如何对查询结果进行排序和分页,以及使用投影定制查询结果。

环境

Windows 10 企业版 LTSC 21H2
MongoDB 6.0.21

1 排序

在查询后可以对结果进行排序显示。

语法:

bson
1
2
db.集合名.find()
.sort(<rules>)

含义:

名称 类型 说明
rules 文档 排序规则,使用键值对形式,键是排序属性,值是排序方式。排序方式为1表示正序,排序方式为-1表示逆序。 支持多个,按照先后顺序进行排序。

示例:

bson
1
2
db.student.find({ sex: "男" })
.sort({ age: -1, id: 1 });

2 分页

在查询时可以指定查询的文档数量以及要跳过的文档数量,从而实现分页的效果。

语法:

bson
1
2
3
db.集合名.find()
.skip(<skipNum>)
.limit(<limitNum>)

含义:

名称 类型 说明
skipNum 文档 跳过数量。
limitNum 文档 查询数量。

示例:

bson
1
2
3
db.student.find({ sex: "男" })
.skip(10)
.limit(10);

3 投影

使用投影指定返回哪些属性。

语法:

bson
1
db.集合名.find(<query>, <projection>)

含义:

名称 类型 说明
query 文档 可选。要查询的文档,如果为空则查询第一个文档,支持通过查询操作符匹配。
projection 文档 可选。指定与查询过滤匹配的文档中要返回的属性。

查询name为张三的文档,只需要返回_id属性和name属性:

bson
1
2
3
4
db.student.findOne(
{ name: "张三" },
{ name: 1 }
);

查询name为张三的文档,只需要返回name属性:

bson
1
2
3
4
db.student.findOne(
{ name: "张三" },
{ name: 1, _id: 0 }
);

评论