MongoDB shell脚本编写

8

您知道是否可能从JavaScript获取数据库列表(例如控制台中的“show dbs”)?我想通过JavaScript文件(mongo admin.js)删除所有mongo数据库,但我找不到列出所有数据库的方法...

谢谢

我正在尝试准备一个简单的脚本,但我不知道如何从脚本中更改数据库。这是一个示例JavaScript脚本。它总是在“use”命令上失败。我尝试过db.eval和eval,但都失败了。

print(db.getMongo().getDBNames());
var environments = db.getMongo().getDBNames()
for(var environmentIndex in environments){
    print(environments[environmentIndex])   
    eval("use staging");
    //db.dropDatabase();
} 

显然,最好使用“顺序”for循环。请参见https://dev59.com/inA75IYBdhLWcg3w8-LZ#3010848。这是我刚刚用来删除MongoDB服务器中所有数据库的JavaScript代码:https://gist.github.com/1754355 - Adam Monsen
2个回答

13
使用db.adminCommand('listDatabases')命令。查看其他命令请参见http://www.mongodb.org/display/DOCS/List+of+Database+Commands
编辑:
util.js中,use dbname被定义为:
shellHelper.use = function( dbname ){
    db = db.getMongo().getDB( dbname );
    print( "switched to db " + db.getName() );
}

是的,谢谢。但我如何通过脚本切换到不同的数据库?我已经使用示例脚本更新了描述。 - user253202
@pingw33n,我们能在bash/linux中运行mongodb命令作为脚本,而无需在计算机上安装mongo shell吗? - jscoffee

7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接