Linux上从mongoDB中定时导出数据脚本
Jun 07, 2016 pm 05:06 PM目标:编写一个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命令将脚本加到定时任务当中

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quelle version est généralement utilisée pour mongodb ?

Partage d'expérience sur la mise en œuvre d'un système de recommandation en temps réel à l'aide de MongoDB

Quels sont les avantages de la base de données MongoDB

Où est la base de données créée par mongodb ?

Où sont les fichiers de la base de données mongodb ?
