有没有办法在一个聚合管道中使用两次$sort操作符?我知道使用带有两个键的单数$sort可以正常工作,即先按第一个键排序,然后按第二个键排序。
我当前的项目需要存在多个$sort阶段,例如
db.collection.aggregate([
{
$sort: {
"age": 1
}
},
{
$sort: {
"score": -1
}
}
])
目前,第二阶段不尊重第一阶段的结果。有什么解决办法吗?
例如,是否可以在第一阶段之后为每个文档分配一个新字段“index”,将其索引存储在当前结果数组中,并在第二个$sort阶段使用该字段?
1条答案
按热度按时间xiozqbni1#
您可以在“$sort”中使用多个值。
我已经定义了蒙哥Playground的链接,你可以参考一下
https://mongoplayground.net/p/ZaRX_XNSXhu