MongoDB aggregate sort

MongoDB aggregate sort

MongoDB 中,aggregate 的 sort 用于对所有输入文档进行排序,并按排序顺序将它们返回到管道。

MongoDB aggregate sort详解

语法

db_name.collection_name.aggregate([ { $sort: { <field1>: <sort order>, <field2>: <sort order> ... } } ])

参数

名称 描述
db_name 数据库名
collection_name 表名
field1 要排序的字段
field2 要排序的字段

说明

使用 sort 可以对结果进行排序。

案例

我们首先,使用 mongo 命令,连接上数据库,具体命令如下:

mongo

如下图所示:

73_mongodb aggregate sort.png

现在,我们使用 use 命令,切换到 haicoder 数据库,具体命令如下:

use haicoder

现在,我们使用 insert 插入三条记录,具体命令如下:

db.haicoder.insert([ {"url" : "haicoder.net", "course" : "Python"}, {"url" : "m.haicoder.net", "course" :"Java"}, {"url" : "www.haicoder.net", "course" :"Java"} ]);

执行完毕后,此时,如下图所示:

74_mongodb aggregate sort.png

我们看到,此时提示我们成功插入了多条记录,现在,我们使用 aggregate sort,对记录进行排序,具体命令如下:

db.haicoder.aggregate([ { $project: {_id: 0} }, { $sort: {url:1} } ]);

执行完毕后,此时,如下图所示:

75_mongodb aggregate sort.png

我们看到,此时,我们对记录进行了排序,现在,我们还可以同时对两个字段进行排序,具体命令如下:

db.haicoder.aggregate([ { $project: {_id: 0} }, { $sort: {url:-1, course:1} } ]);

执行完毕后,此时,如下图所示:

76_mongodb aggregate sort.png

现在,我们首先对 url 进行了降序排序,再次对 course 进行升序排序。

MongoDB aggregate sort总结

在 MongoDB 中,aggregate 的 sort 用于对所有输入文档进行排序,并按排序顺序将它们返回到管道。