mongo createIndex后台阻止shell

job*_*bou 4 mongodb

我正在创建几个千兆位文档的索引.

在我的mongo shell中,我运行了这个命令:

db.positions.createIndex( { "imei": 1, "server_date": -1 }, { "background": true, "name": "positions_imei_server_date" } );
Run Code Online (Sandbox Code Playgroud)

但是,即使背景设置为true,我也没有得到shell提示符.

如果我查看日志,我会看到:

[conn13]   Index Build (background): 14129300/19197181 73%
Run Code Online (Sandbox Code Playgroud)

所以它似乎真的作为后台任务运行.但是为什么我没有收到shell中的提示?这是正常的吗?如果我输入CTRL+ C它会取消我的索引吗?

我正在运行mongo 3.4.0

Men*_*eni 7

这是预期的行为.后台意味着您正在构建索引的数据库中的列表集合等操作不会阻止.但是,您启动的shell命令仍在运行.您只需打开另一个shell并连接到服务器即可.发布CTRL+ C将中止索引创建.

在此处查看更多信息:https://docs.mongodb.com/v3.0/core/index-creation/#background-construction