我使用MongoDB,有一个大约7500万条记录的集合,我使用以下命令在两个“字段”上添加了一个复合索引:
db.my_collection.ensureIndex({"data.items.text":1, "created_at":1},{background:true}).
两天后,我试图查看索引创建的状态,运行db.currentOp()
返回{}
,但是当我试图创建另一个索引时,我得到了这个错误消息:
cannot add index with a background operation in progress.
是否有办法检查索引创建作业的状态/进度?
有一点需要补充--我使用的是mongodb版本2. 0. 6。谢谢!
7条答案
按热度按时间cedebl8k1#
在mongo shell中,输入以下命令查看当前进度:
要进行实时运行状态日志:
monwx1rj2#
您可以使用带有true参数的 currentOp,它会返回更详细的输出,包括空闲连接和系统操作。
...然后您可以使用 db.killOp() 终止所需的操作。
falq053o3#
以下内容应打印出索引进度:
产出:
roejwanj4#
不幸的是,DR9885答案对我不起作用,它在代码中有空格(语法错误),即使删除空格,它也不会返回任何结果。
此功能适用于Mongo Shell
v3.6.0
直到我发布了我的答案后才读到Bajal的答案,但它几乎完全相同,只是代码略短,而且也能正常工作。
yqlxgs2m5#
我喜欢:
输出示例:
索引构建索引构建:84826/335739占25%
文件表明:
活动索引操作示例。
d5vmydt96#
简单的一个只是检查进展的一个单一的索引正在进行:
产出:
fcipmucu7#
查找索引作业的进度,漂亮的一行代码: