暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Shell脚本中执行MongoDB命令

须弥零一 2021-04-18
2126

Shell脚本中执行MongoDB命令

对于平常经常使用 MongoDB 的用户来讲,势必会经常进行查询、维护等操作。一般情况下,我们会使用图形化界面的客户端工具来操作,例如 Studio 3T for MongoDB
那万一因为某种原因你只能在封闭环境(外网不可达或未暴漏 MongoDB 服务端口)上操作,并且是大量操作。你会怎么办?
这种面对大量shell下大量操作的情况,我们一般会写个脚本来执行,省心省力。但您有没有在shell 脚本中执行 MongoDB命令的经验呢?如果没有的话这边文章可以作为您的参考。

在Shell脚本中执行

想在shell脚本执行参考如下示例即可:

#! bin/bash

./mongo 127.0.0.1:27017/test <<EOF
var cursor = db.UserInfo.find();
while(cursor.hasNext()){
var item = cursor.next();
print(item.userAccount);
}
EOF

shell脚本说明:

./mongo
 mongo可执行程序,即登录的命令行命令
127.0.0.1:27017
 MongoDB服务的IP和端口
test
 要操作的MongoDB数据库名
<<EOF ... EOF
 待执行的命令。注意最后一个EOF必须在行首,前面不要加任何字符。并且EOF可以替换成任意的字符串(两个需要保持一致)。等多的shell子命令的知识您可以再自行翻阅下资料,这里就不多讲了。

MongoDB语句作为一个js脚本来执行

这时,您可以参照如下示例,准备两个文件:

test.js

var cursor = db.UserInfo.find();

while(cursor.hasNext()){
var item = cursor.next();
print(item.userAccount);
}

shell脚本

#! /bin/bash

./mongo 127.0.0.1:27017/test ./test.js

shell脚本说明:

./mongo
 mongo可执行程序,即登录的命令行命令
127.0.0.1:27017
 MongoDB服务的IP和端口
test
 要操作的MongoDB数据库名

您也可以在会话中使用如下方式执行:

./mongo 127.0.0.1:27017/test ./test.js

最后

如上就是两种简单的在shell下执行MongoDB的方式。
通过上面的方法,您可以将脚本的输出重定向到一个文件,或使用管道命令结合其他命令行工具的方式来进行二次分析,以达到事半功倍的效果。
---- END ----

欢迎关注我的公众号“须弥零一”,原创技术文章第一时间推送。


文章转载自须弥零一,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论