MongoDB $sort(聚合)不起作用
MongoDB $sort (aggregation) doesn't working
我有这个聚合查询:
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})
进行常规查找(无聚合)时,它工作正常。
我在这里错过了什么?
聚合阶段按顺序执行,在您的查询 $skip
和 $limit
阶段执行之前 $sort
,因此排序将仅适用于 10 个文档,
您可以在 $skip
阶段之前移动 $sort
状态。
我有这个聚合查询:
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})
进行常规查找(无聚合)时,它工作正常。
我在这里错过了什么?
聚合阶段按顺序执行,在您的查询 $skip
和 $limit
阶段执行之前 $sort
,因此排序将仅适用于 10 个文档,
您可以在 $skip
阶段之前移动 $sort
状态。