0

我有一组文档(命名帖子),每个文档都包含一个名为 category 的字段。每个类别都是类别集合的一部分。它们的数量是固定的(比如 15 个)。

如何从每个类别中获取最后 10 个 tldr?

4

2 回答 2

1

另一种解决方案是在每个帖子中设置一个“标志”,这实际上是结果的一部分,例如:

topTen: true

在该标志上定义稀疏索引将提供最快的查询 - 当然,以维护该标志为代价:

  • 在插入时设置标志(影响:再更新一个索引)
  • 如果在一段时间内查询返回 11 个帖子而不是 10 个是可以容忍的,则触发一个后台进程,删除(取消设置)该类别的第 11 个标志
  • 如果不能容忍,在插入时查找并取消设置第 11 个标志
  • 如果现有帖子的类别被更改,请确保标记设置正确(针对旧类别和新类别)
  • 如果设置了标志的帖子被删除:查找并设置新的第 10 个帖子的标志
  • 可能您想提供一个定期运行的进程,以确保所有标志都按应有的方式设置

有关稀疏索引的更多信息,请参阅http://docs.mongodb.org/manual/core/indexes/#index-type-sparse

于 2013-04-08T04:09:44.890 回答
1

可能最好先获取所有类别的列表,然后通过单独的查询为每个类别获取 10 个最新帖子。

于 2013-03-20T14:30:54.300 回答