我的mongodb数据库文档中有几个ID。我需要通过脚本在这些ID上创建索引,这样我就不必一次又一次地运行ensureIndex命令。
db.getCollection("elements").ensureIndex({customerId:1});
db.getCollection("elements").ensureIndex({userId:1});
........
我只是运行脚本(包含所有这些命令),我应该完成。知道如何从mongodb shell运行脚本吗?该脚本的扩展应该是什么?
朱希。
答案 0 :(得分:12)
您可以将命令放到javascript文件(扩展名为.js
)并使用mongo
控制台实用程序来运行它。像这样:
mongo --host my_host --port my_port my_db create_indexes.js
create_indexes.js
文件将包含您的命令:
db.getCollection("elements").ensureIndex({customerId:1});
db.getCollection("elements").ensureIndex({userId:1});
....
答案 1 :(得分:8)
您也可以从mongodb shell运行脚本。我喜欢在函数中添加东西以便于调用它们。像这样创建脚本:
var ensureIndexes = function() {
db.getCollection("elements").ensureIndex({customerId:1});
db.getCollection("elements").ensureIndex({userId:1}); ........
}
将上面的内容保存到名为ensureIndexes.js的文件中,然后从mongo shell输入:
load('ensureIndexes.js')
现在您可以输入ensureIndexes()
来调用该功能。我有很多包含这样的实用程序功能的脚本。
答案 2 :(得分:4)
如果您使用任何类似操作系统的unix,它可能会有所帮助。
我使用unix shell进行了重定向。
因此,从UNIX命令行输入:
mongo < your_script.js
在your_script.js中,您可以声明命令。