【问题标题】:MongoDB - Using Index to get nested IDs is slowMongoDB - 使用索引获取嵌套 ID 很慢
【发布时间】:2022-07-11 22:35:06
【问题描述】:

我有一个包含 8k+ 文档的 MongoDB 集合,大约 40GB。在其中,数据遵循以下格式:

{
 _id: ...,
 _session: {
    _id: ...
 },
data: {...}
}

我需要为我的应用程序获取所有 _session._id。以下方法(python)获取它们的时间太长:

cursor = collection.find({}, projection={'_session._id': 1})

我在 MongoDB Compass 中创建了一个索引,但我不确定我的查询是否完全使用了它。

有没有办法加快这个查询,让我很快得到所有的_session._id

【问题讨论】:

  • 您是否尝试过检查查询计划?你在用阿特拉斯吗?你的索引是什么样的?是复合索引吗?

标签: mongodb mongodb-query pymongo


【解决方案1】:

在 mongo shell 中,您可以提示()查询优化器使用可用索引,如下所示:

db.collection.find({},{_id:0,"_session._id":1}).hint({"_session._id":1})

在python中会类似...

【讨论】:

    猜你喜欢
    • 2013-04-20
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    • 2018-11-25
    • 2013-06-24
    • 1970-01-01
    相关资源
    最近更新 更多