【发布时间】:2020-12-25 14:34:31
【问题描述】:
我有这个聚合查询:
db.getCollection('collectionName').aggregate([
{
$facet: {
"myAttrName": [
{
$match: {
$or: [
{
"key1": "value1"
},
{
"key2": "value2"
}
],
status: "OK"
}
},
{
$skip: 0
},
{
$limit: 10
},
{
$sort: {
timestamp: -1
}
}
]
}
}
])
嗯.. 它没有正确排序结果。我只是看到它们按添加“fifo”的时间排序。
当我只是使用.sort({timestamp: -1}) 进行常规查找(没有聚合)时,它可以正常工作。
我在这里错过了什么?
【问题讨论】:
-
将
$sort舞台移动到$skip舞台之前。 -
它在这里排序 mongoplayground.net/p/c8dCUoD-C0_ 是的,在排序之前跳过没有什么意义。
-
请写下这个答案,我会标记为正确的。
-
@AlexBlex 也许您提供的链接在幕后处理了这个问题
-
这是
$facet的特殊性。在“经典”管道中,它会运作良好docs.mongodb.com/manual/core/aggregation-pipeline-optimization
标签: mongodb nosql aggregation