我一直在使用mongo和脚本文件,如下所示:
$ mongo getSimilar.js
我想将参数传递给文件:
$ mongo getSimilar.js apples
然后在脚本文件中拾取传入的参数。
var arg = $1;
print(arg);
Answers:
使用--eval
并使用Shell脚本来修改传入的命令。
mongo --eval "print('apples');"
或创建全局变量(贷给塔德·马歇尔):
$ cat addthem.js
printjson( param1 + param2 );
$ ./mongo --nodb --quiet --eval "var param1=7, param2=8" addthem.js
15
conf = rs.conf() conf.members.forEach( function (member) { member.priority = 0.5 } ) conf.members[memberId].priority = 1 // rs.reconfig(conf)
将此脚本保存在choiceprimary.js中,并使用运行mongo --eval "var memberId=3" chooseprimary.js
。memberId应该是您希望成为主节点的辅助节点的ID。只要确保在主服务器上执行mongo --eval即可。:)
设置一个外壳变量:
password='bladiebla'
创建js脚本:
cat <<EOT > mongo-create-user.js
print('drop user admin');
db.dropUser('admin');
db.createUser({
user: 'admin',
pwd: '${password}',
roles: [ 'readWrite']
});
EOT
将脚本传递给mongo:
mongo mongo-create-user.js
我写了一个小工具来为自己解决问题。使用该mongoexec
实用程序,您可以./getSimilar.js apples
通过将以下内容添加到脚本的开头来运行命令:
#!/usr/bin/mongoexec --quiet
然后,您可以在脚本中以以下方式访问参数: args[0]
。
sudo
不能解决问题。将shebang更改为指向用户目录(而不是/ usr / bin)中的可执行文件不起作用。所有人都为使用它感到兴奋。希望我能使它工作。