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

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

环境

Windows 10 企业版 LTSC 21H2
MongoDB 6.0.21

1 排序

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

语法:

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

含义:

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

示例:

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

2 分页

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

语法:

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

含义:

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

示例:

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

3 投影

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

语法:

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

含义:

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

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

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

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

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

评论