首页 > 解决方案 > pymongo 中不允许用于 atlasAdmin 角色的 MongoDB reIndex 命令

问题描述

我正在测试 pymongo 错误消息是否达到我的存储配额,这导致我为 4.03MB 集合创建了一个 177.96MB 索引(在删除用于填充我的配额的虚拟日志之后)。我正在尝试删除多余的索引,但我反复收到此错误。

OperationFailure: CMD_NOT_ALLOWED: reIndex, full error: {'ok': 0, 'errmsg': 'CMD_NOT_ALLOWED: reIndex', 'code': 8000, 'codeName': 'AtlasError'}

我用来访问集群的 MongoDB 角色是 atlasAdmin。所以,我不确定为什么我无法访问这个命令。运行以下行时出现错误。

client.database_name.collection_name.drop_indexes()
client.database_name.command({'reIndex': 'collection_name'})

有谁知道为什么我不能这样做?

标签: pythonmongodbpymongo

解决方案


Atlas free 和共享集群不支持所有命令。请参阅https://docs.atlas.mongodb.com/reference/unsupported-commands/#unsupported-commands-in-m0-m2-m5-clusters

reIndex 在不受支持的命令列表中。

您将需要升级到 M10 或更大的集群,或者单独删除和构建每个索引。


推荐阅读