【发布时间】:2022-02-15 19:03:30
【问题描述】:
以下查询在 mongo shell 中大约需要 54 毫秒,但在 nodejs 驱动程序中在一分钟后超时:
db.posts.find(
{
parentId: 10,
modifiedGmt: {
"$gte": new Date("2017-01-01T00:00:00.000z")
},
postType: {
"$in": ["type1", "type2"]
}
},
{
_id: 1,
parentId: 1,
postId: 1,
url: 1,
modifiedGmt: 1,
authors: 1,
taxonomy: 1,
postType: 1
}
).sort({modifiedGmt: 1}).limit(2400)
解释表明查询正在使用现有索引。如果我将限制降低到 10 之类的非常低的值,它不会超时,但会花费很长时间。我真的不知道该去哪里。这是一个很大的集合,但是索引到位并且限制低于 10000,我不明白为什么它会这么慢。
有什么想法吗?
【问题讨论】:
-
您需要在问题帖子中包含更多详细信息 - 解释结果、集合中的文档数量、创建的索引以及包含相关字段的示例文档。