当我尝试直接对集合进行排序时,我可以在任何字段上对其进行排序,而不会出现如下问题:
db.getCollection('collection_1').find({SOME_ID: 20246}).sort({SOME_STATUS: -1})
但是当我尝试与其他集合聚合相同的集合时,它不会对某些字段进行排序。就像上面提到的SOME_STATUS
字段不再排序一样
db.getCollection('collection_1').aggregate([
{ $match: { SOME_ID: 20246 } },
{ $skip: 0 },
{ $limit: 10 },
{$lookup: { from: 'collection_2', localField: 'SOME_OTHER_ID', foreignField: 'SOME_OTHER_ID', as: 'SOME_OTHER_INFO'}},
{ $sort: { SOME_STATUS: 1} },
])
此查询对排序没有影响。
这里可能有什么问题?
UPDATE :问题在于传递给聚合函数的序列,$sort
应该在$skip
之前。最后写它给它只有有限的文件来排序,可能没有SOME_STATUS
的多个值