在mongoose-aggregate-paginate-v2中排序

我正在使用mongoose-aggregate-paginate-v2

排序不起作用

var aggregate = searchmodel.aggregate()
aggregate.match({ word: { $regex: `.*${word}.*` } })
  .group({
    _id: '$user_id',doc: { $first: '$$ROOT' }
  })
var options = {
  page: page,limit: 50,sort: { createdAt: -1 }
}
searchmodel.aggregatepaginate(aggregate,options).then(function (results) {
  return res.json(results)
}).catch(function (err) {
  console.log(err);
})

我尝试了很多事情进行排序,但是根本不起作用

iCMS 回答:在mongoose-aggregate-paginate-v2中排序

您应该写

var aggregate = searchmodel.aggregate()
aggregate.match({ word: { $regex: `.*${word}.*` } })
  .group({
    _id: '$user_id',doc: { $first: '$$ROOT' }
  })
var options = {
  page: page,limit: 50,sort: { createdAt: 'desc' }
}
searchmodel.aggregatePaginate(aggregate,options).then(function (results) {
  return res.json(results)
}).catch(function (err) {
  console.log(err);
})
,

其实我找到了解决问题的方法。 您需要将 _id 添加到排序对象中。

示例:

  const options = {
    page: page,limit: limit,sort: { _id: 1,createdAt: -1 },};

它有效。

本文链接:https://www.f2er.com/1774508.html

大家都在问