【问题标题】:How to get total documents in mongoose?如何在猫鼬中获取全部文件?
【发布时间】:2020-03-27 07:50:50
【问题描述】:
usermodel.find({ 'word': { $regex: `.*${word2}.*` } })
        .populate('user').limit(3)
        .skip(page).exec((err, searches) => {

})

使用limit和skip时如何获取文档数(总数)? 当我使用 mongoose-paginate 时,它​​给了我总数 但是我怎么才能在这里得到总数呢?

【问题讨论】:

  • 你不能,你必须把它分成2个调用,一个是分页查询,一个是计算总数。这基本上就是 mongoose-paginate 所做的。
  • @tomslabbaert 请求数多没问题?
  • @tomslabbaert $facet 怎么样?
  • 效率很低
  • @tomslabbaert 请详细说明

标签: node.js mongodb mongoose pagination


【解决方案1】:

您可以使用$facet 运行两个单独的查询:

usermodel.aggregate([
    { $match: { your query goes here } },
    {
        $facet: {
            filtered: [ { $limit: 3 } ],
            total: [ { $count: "total" } ]
        }
    },
    {
        $unwind: "$total"
    }
])

【讨论】:

  • 我想要找到所有文档。此代码提供 usermodel 集合中的全部文档。你有什么想法吗?
  • @Julia 查看我修改后的答案
猜你喜欢
  • 1970-01-01
  • 2017-11-24
  • 1970-01-01
  • 2021-06-20
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-17
相关资源
最近更新 更多