MongoDB 3.2 - 获取限制为

时间:2016-02-11 18:27:40

标签: mongodb count pagination limit aggregation-framework

在有限制的mongoDB聚合之后,我看到很多关于总计数的问题,但是他们是旧的,我需要更新。

我们的目标是在只有一个查询中对文档进行分页。

在这个聚合中,我们需要:

  • 与正则表达式匹配,
  • 匹配正则表达式
  • 的文档总数
  • 10份文件的限制
  • 跳过n个第一批文件。

许多答案都表示我们在汇总限制后无法获得总计数,但在$sum中使用$project的新功能时,我不知道是否可以那样做?

[
  {
    '$match': {content: {'$regex': 'a string to search', '$options': 'i'}}
  },
  {
    '$project': {
      'article': '$$ROOT',
      'blog': '$blog',
      'views': '$views',
      'created_at': '$created_at'
    }
  },
  { '$skip': 20 },
  { '$limit': 10 }
]

count : { $sum : 1 }另一件事是如果我按null分组,我丢失了所有文件。

Mongo 3.2可以解决此问题吗?

- 修改

我在$match(如$regexp)中做了一些沉重的事情,我必须根据此匹配计算总结果。我使用$limit而不是limit(),否则我只需要count()。即使它听起来像过度查询,我认为如果我只做一个查询,收益是真实的。有什么办法吗?至少我想尝试看看它的效率或多或少。

0 个答案:

没有答案