Linux上从mongoDB中定时导出数据脚本
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux上从mongoDB中定时导出数据脚本,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1578字,纯文字阅读大概需要3分钟。
内容图文
![Linux上从mongoDB中定时导出数据脚本](/upload/InfoBanner/zyjiaocheng/551/6712be42d310495b83ae23ff5f803490.jpg)
目标:编写一个shell脚本,以便能够将mongoDb中的数据导出成为csv格式的文件。要求:1. 为了避免导出巨量数据,仅需要过滤出当月
目标:编写一个shell脚本,,以便能够将mongoDb中的数据导出成为csv格式的文件。
要求:
1. 为了避免导出巨量数据,仅需要过滤出当月数据和上个月的数据即可。
2. 由于当天的数据是不完整的,所以需要排除当天的数据
以下是一个例子
--------------------------------------------------------------------------
#!/bin/bash
#创建保存目录
mypath=micAnalyDir/`date +%Y/%m%d`
mkdir -p $mypath
#计算过滤时间
baseDate=`date --date '1 months ago' +'%m/01/%Y'`
echo $baseDate
declare -i baseTime
baseTime=$((`date --date "$baseDate" +"%s"` * 1000))
#导出指定数据表中的数据
function exportData() {
exportCmd="/kingdee/mongodb/bin/mongoexport --csv"
if [ $# -gt 3 ]; then
#这里要注意baseTime和endTime不能加引号,否则会报错
$exportCmd -d $1 -c $2 -f $3 -q \
"{\"$4\":{\"\$gte\":{\"\$date\":$baseTime}, \
\"\$lt\":{\"\$date\":$endTime}}}" -o $mypath/$2.csv
else
$exportCmd -d $1 -c $2 -f $3 -o $mypath/$2.csv
fi
}
#导出第一张表的所有数据
echo export data from $baseDate
echo 'export ossDev.T_User'
fields="_id,email,registerDate,photoId"
exportData "ossDev" "T_User" $fields
#导出第二张表的sendTime为当月和上月的数据
echo 'export snsDev.T_Comment'
fields="_id,del,from,mbId,mbOwner,nwId,ownerId,sendTime"
exportData "snsDev" "T_Comment" $fields "sendTime"
----------------------------------------------------------------------------
保存为.sh文件后使用 chmod +x 将该脚本设置为可执行,然后使用crontab命令将脚本加到定时任务当中
内容总结
以上是互联网集市为您收集整理的Linux上从mongoDB中定时导出数据脚本全部内容,希望文章能够帮你解决Linux上从mongoDB中定时导出数据脚本所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。