Mongodb Mongoose:按不同顺序排序数组

Mongodb Mongoose:按不同顺序排序数组,mongodb,mongoose,Mongodb,Mongoose,我不知道这是否可能,但我希望得到查询的最后N个元素,并像这样在响应数组中得到它[N,N-1,N-2,…,0] 我的查询偏离了轨道,得到了[0,1,2,…,n] 我的查询是Model.find({}).sort({date:-1}).limit(n).exec() 我知道我可以编写一个js函数来反转数组,但是如果mongoose已经有了一些东西,那么这样做就没有意义了 简单地说,$sort在$limit Model.find({}).sort({date:-1}).limit(n).sort({d

我不知道这是否可能,但我希望得到查询的最后N个元素,并像这样在响应数组中得到它[N,N-1,N-2,…,0]

我的查询偏离了轨道,得到了[0,1,2,…,n]

我的查询是Model.find({}).sort({date:-1}).limit(n).exec()


我知道我可以编写一个js函数来反转数组,但是如果mongoose已经有了一些东西,那么这样做就没有意义了

简单地说,
$sort
$limit

Model.find({}).sort({date:-1}).limit(n).sort({date:1}).exec()
                                                   ^
或者使用聚合,
$sort
$limit
对结果进行排序,然后按相反顺序再次执行
$sort

db.col.aggregate([
    {$sort : {date : -1}},
    {$limit : n},
    {$sort : {date : 1}}
])

谢谢你的回答。很抱歉,我不知道聚合方法,所以我花了一些时间来确定它是否能正确解决问题。所以第一种方法不起作用,就像链锁不起作用一样。聚合回答问题,但问题是填充,可以通过查找找到解决方案,但实际上没有填充强大。你确定第一种方法吗?(我的mongo server版本是3.4)第一个版本在mongo CLI中运行良好,我们需要查看哪个模型。find返回,如果它返回数组或迭代器,我们需要在客户端使用聚合进行反向排序,以便所有计算将在服务器端而不是客户端完成感谢您的建议。我需要提高对这方面的认识。