mongodb查询结果导出到文件
young / / / 阅读量

工作中遇到有个mongodb统计任务需要定时每天统计,特地写了一个脚本进行统计,使用EOF进行,mongodb语句输入

1、EOF

Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序。

回顾一下< <的用法。当shell看到< <的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。这个分界符可以是你所定义的任何字符串。

下面是脚本内容:

#########################################################################
# File Name: a.sh
# Author: root
# mail: root.com
# Created Time: 2017年12月12日 星期二 14时42分44秒
#########################################################################
#!/bin/bash
#进入mongodb bin目录
cd /root/mongodb/bin
#连接数据库,-quiet去掉不必要的信息
MongoDB='./mongo 127.0.0.1:27017/movie -quiet'
NOW=`date +{5749fe182deba6f703e69800a8cc3afb9894ad400f350437bd2be724fa41f418}Y-{5749fe182deba6f703e69800a8cc3afb9894ad400f350437bd2be724fa41f418}m-{5749fe182deba6f703e69800a8cc3afb9894ad400f350437bd2be724fa41f418}d`
#开始语句
$MongoDB <<EOF
db.getCollection('content').distinct("phone",{createTime:{\$gte:"$NOW 00:00:00",\$lte:"$NOW 23:59:59"}}).length;
exit;
EOF

然后命令行中将结果重定向到文件就OK了!

总结:mongdb真是一个坑,没有类似mysql into outfile的语句,想把查询结果导出来只能用这么个办法,找了快一天才查到这个办法解决.

常用脚本:

—–自动备份mongodb数据并压缩—

#!/bin/bash
filename=`date +{5749fe182deba6f703e69800a8cc3afb9894ad400f350437bd2be724fa41f418}Y{5749fe182deba6f703e69800a8cc3afb9894ad400f350437bd2be724fa41f418}m{5749fe182deba6f703e69800a8cc3afb9894ad400f350437bd2be724fa41f418}d{5749fe182deba6f703e69800a8cc3afb9894ad400f350437bd2be724fa41f418}H`
backmongodbFile=mongodb$filename.tar.gz
cd /home/mongo/back/
/usr/mongodb/bin/mongodump -h 192.168.1.7 -port 37017 -d MongoDBAgent -o mongodb_dump/
/usr/mongodb/bin/mongodump -h 192.168.1.7 -port 37017 -d MongoDBBg -o mongodb_dump/
/usr/mongodb/bin/mongodump -h 192.168.1.7 -port 37017 -d MongoModelActor -o mongodb_dump/
tar czf $backmongodbFile  mongodb_dump/
rm mongodb_dump -rf

 

—–自动解压并还原mongodb数据—

#!/bin/bash
filename='201712130900'
backmongodbFile=mongodb$filename.tar.gz
cd /home/mongo/back/
tar zxvf $backmongodbFile
/usr/mongodb/bin/mongorestore -h 192.168.1.6 -port 37017 --drop -d MongoDBAgent mongodb_dump/MongoDBAgent
/usr/mongodb/bin/mongorestore -h 192.168.1.6 -port 37017 --drop -d MongoDBBg mongodb_dump/MongoDBBg
/usr/mongodb/bin/mongorestore -h 192.168.1.6 -port 37017 --drop -d MongoModelActor mongodb_dump/MongoModelActor
rm mongodb_dump -rf

 

支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章