【发布时间】:2020-10-10 06:12:22
【问题描述】:
我正在使用 MongoDB 并尝试进行聚合查找。 $lookup 的“from”属性中使用的集合中的文档数量为数千。 现在,这会占用所有 CPU 并花费大量时间来响应。
但如果我将文档删除到几百个,它仍然很慢,但比以前快得多。
这是聚合查找的正常行为吗?如果我有大量文档,我是否应该考虑其他事情?
请推荐
【问题讨论】:
-
只要您有正确的索引,聚合可能需要几毫秒。举例说明您的聚合查询、您的文档并列出您的索引。
-
谢谢! @Robert Seaman 实际上我正在做的聚合非常简单,但仍然需要几分钟。让我解释一下这个场景。所以有两个集合,一个是User,另一个是Notification。通知有一个字段
type。我想获取所有具有特定类型通知的用户。通知集合有数千个文档,我已经索引了 _id 和 type 字段。您认为推荐的方法是什么? -
那么,您要汇总 2 个集合?如果您提供文档结构、查询和索引的实际示例会更好。
-
@RobertSeaman 是的,它涉及两个集合。 Here 是我使用 explain() 得到的。我在 _id 和类型字段上有索引。
标签: database mongodb mongoose mongodb-query nosql