mongodb - 我可以逆序查询 MongoDB 吗?

标签 mongodb mongoose

我有一条路由来处理特定用户的帖子请求。我希望每个请求都能提供与给定作者匹配的最新 25 个帖子,并在下一个请求中提供之后的 25 个帖子。到目前为止我的代码:

router.get('/profile/:id', (req, res) => {
 Post.find({'author': req.params.id})
  .skip(req.query.skip)
  .limit(25)
  .populate({
    path: 'author',
    select: 'firstName lastName img'
  }).then(
    posts =>{
      res.json({posts: modifyPosts(posts, req.user._id)})
    }
  ).catch(
    err => {
      console.log(err)
      res.json({err: err})
    }
  )
})

我想先提供最新的帖子,然后再向客户提供较旧的文档。 “req.query.skip”在每次请求之前在客户端递增。如果我理解正确的话,添加 .sort("date") 方法仍然会返回相同的 25 个文档。我编写的代码总是首先返回最旧的 25 个文档,所以我想基本上是在寻找一个选项,让我可以从下往上搜索数据库。

最佳答案

如果你想先获取最新的帖子,你需要使用 .sort({ date: -1 }).sort('-date') Mongoose 查询。

已更新

如果您使用.populate(),排序应该在populate内部。

.populate({
    path: 'author',
    select: 'firstName lastName img',
    options: { sort: { 'date': -1 }}
  }

关于mongodb - 我可以逆序查询 MongoDB 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50959590/

相关文章:

python - 如何比较通过 PyMongo 存储在 MongoDB 中的 Twitter 数据的日期?

mongodb - 使用 Mongoose 从 MongoDB 文档中删除一个键

Java MongoDB查询,插入2个 '$or'条件

mongodb - 使用 mgo 对 MongoDB 的并发查询以封闭的套接字结束

javascript - 如何从 MongoDB 集合中创建并行和顺序作业队列(FIFO)?

ruby-on-rails - Rails 3 + rails_admin + MongoDB 如何表示数组

javascript - 使用 mongoose 更新许多属性的优雅方式

javascript - 如何在 2 个映射函数内等待并从 mongoDB 检索文档

javascript - 这个 .find 函数有什么根本性的错误吗? ( Mongoose )

node.js - Nodejs - Mongoose 连接到定义的 MongoDB