MongoDB 简明教程

MongoDB $sort

1. $sort 阶段

$sort 阶段用于根据指定的字段对流入管道的文档进行重新排序。

2. 排序规则

在定义排序顺序时,你需要为指定的字段分配一个数值:

  • 1:用于升序排列(从最小到最大)。
  • -1:用于降序排列(从最大到最小)。

3. 实践示例

在下面的示例中,我们将根据 imdb.rating(IMDb 评分)字段对 movies 集合中的文档进行降序排列:

示例

db.movies.aggregate([
  { $sort: { "imdb.rating": -1 } }
])

4. 排序与限制的顺序

在聚合管道中,阶段的顺序非常重要。如果你想获取评分最高的 5 部电影,你应该先进行 $sort(排序),然后再进行 $limit(限制数量)。

如果你先使用 $limit 再使用 $sort,你将只能对随机获取的少量文档进行排序,这通常不符合业务逻辑。因此,请务必根据你的需求仔细排布阶段顺序。