对于平常经常使用 MongoDB 的用户来讲,势必会经常进行查询、维护等操作。一般情况下,我们会使用图形化界面的客户端工具来操作,例如 Studio 3T for MongoDB。
那万一因为某种原因你只能在封闭环境(外网不可达或未暴漏 MongoDB 服务端口)上操作,并且是大量操作。你会怎么办?
这种面对大量shell下大量操作的情况,我们一般会写个脚本来执行,省心省力。但您有没有在shell 脚本中执行 MongoDB命令的经验呢?如果没有的话这边文章可以作为您的参考。
在Shell脚本中执行
想在shell脚本执行参考如下示例即可:
1 | ! /bin/bash |
shell脚本说明:
- ./mongo mongo可执行程序,即登录的命令行命令
- 127.0.0.1:27017 MongoDB服务的IP和端口
- test 要操作的MongoDB数据库名
- <<EOF … EOF 待执行的命令。注意最后一个EOF必须在行首,前面不要加任何字符。并且EOF可以替换成任意的字符串(两个需要保持一致)。等多的shell子命令的知识您可以再自行翻阅下资料,这里就不多讲了。
MongoDB语句作为一个js脚本来执行
这时,您可以参照如下示例,准备两个文件:
- test.js
1 | var cursor = db.UserInfo.find(); |
- shell脚本
1 | ! /bin/bash |
shell脚本说明:
- ./mongo mongo可执行程序,即登录的命令行命令
- 127.0.0.1:27017 MongoDB服务的IP和端口
- test 要操作的MongoDB数据库名
您也可以在会话中使用如下方式执行:
1 | ./mongo 127.0.0.1:27017/test ./test.js |
最后
如上就是两种简单的在shell下执行MongoDB的方式。
通过上面的方法,您可以将脚本的输出重定向到一个文件,或使用管道命令结合其他命令行工具的方式来进行二次分析,以达到事半功倍的效果。
欢迎关注我的公众号 须弥零一,跟我一起学习IT知识。
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !