Bash脚本从MongoDB中删除旧文档

时间:2018-10-03 15:32:01

标签: bash

我编写了一个bash脚本,以从MongoDB集合中删除旧文档。而且我以某种方式无法使脚本使用变量:

#!/bin/bash

MONGO_USER="username"
MONGO_PWD="userpassword"

DATE=$(date --date="$1" +"%Y-%m-%d")
PREV_MONTH=$(date --date="$DATE -2 months" +"%Y-%m-%d")

echo "Removing data from before $PREV_MONTH"
mongo -u $MONGO_USER -p $MONGO_PWD --authenticationDatabase dbName dbName --eval 'printjson(db.collection.remove({ "data.recorded_at" : {"\$lt" : "${PREV_MONTH}T00:00:00Z" } }))'
mongo -u $MONGO_USER -p $MONGO_PWD --authenticationDatabase dbName dbName --eval 'printjson(db.collection.remove({ "data.recorded_at" : {"\$lt" : "2018-07-01T00:00:00Z" } }))'
echo "Done."

即使字符串正确,第一行也不会删除任何内容(例如,如果我用bash my_script.sh 2018-09-01调用脚本,它将计算PREV_MONTH2018-07-01

我做错了什么?

0 个答案:

没有答案