【问题标题】:Mongodb: Documents in pairs of 10 sequentially from $aggregateMongodb:从$aggregate按顺序排列成对的10个文档
【发布时间】:2018-02-25 22:07:06
【问题描述】:

我是 Mongodb 的新手。如果问题无关紧要,请原谅我,如果可能,请尝试提供其他技术。

有没有什么方法可以在第一次和下一次使用相同的 Aggregate() 时从 Aggregate() 查询中获取 10 个文档,但跳过获取的前 10 个结果以前。

请建议:这是否可以避免最大 16 mb 聚合结果的限制,因为我有大量文档并希望通过分组来聚合 p>

【问题讨论】:

标签: mongodb mongoose aggregation-framework mongoose-populate


【解决方案1】:

您可以在聚合查询中使用限制和跳过。

.aggregate([{$match:{ABC:"ABC"}},{$limit:10}])

此查询将返回前 10 个文档,然后您可以在下一个查询中使用 skip 来返回所有其他文档。

.aggregate([{$match:{ABC:"ABC"}},{$skip:10}])

16MB 是每个文档的大小限制,而不是整个结果集。

【讨论】:

  • 感谢您的回答。你解决了我的困惑,我需要一个建议:我可以使用此方法通过使用 $lookup 从 2 个集合中获取共享和帖子,并仅返回前 10 个结果,当用户到达页面底部时再次使用相同的查询等等
  • 我不认为像这样使用聚合查询是个好主意。我只将聚合用于一天运行一次的后端作业。如果您没有任何其他选项,请先使用您期望的最大数据测试您的查询,并检查它花费了多少时间。
  • 你能看看this one 并建议我怎样才能使它更有效
猜你喜欢
  • 1970-01-01
  • 2014-08-21
  • 2016-08-19
  • 2020-08-07
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
相关资源
最近更新 更多