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,你将只能对随机获取的少量文档进行排序,这通常不符合业务逻辑。因此,请务必根据你的需求仔细排布阶段顺序。