#!/bin/bash
#db.recognition.chunk.deleteMany({"expireAt":{\$lt:ISODate("$time")}})
date
time=$(date -d "20 day ago " +%Y-%m-%d)
echo "删除$time之前的识别记录"
docker exec -ti database_service /bin/bash -c '
mongo -usensekeeper -psensekeeper --authenticationDatabase sensekeeper <<EOF
use sensekeeper;
db.recognition.chunk.find({"expireAt":{\$lt:ISODate("$time")}}).count();
db.recognition.chunk.deleteMany({"expireAt":{\$lt:ISODate("$time")}})
exit
EOF
exit'
\$lt ---转义,写成$lt会报如下错误[thread1] SyntaxError: invalid property id @(shell):1:39
sh mongo_delete.sh >>/tmp/mongo_delete.log
--2023.5.10 以上内容mongo无法识别到传入的日期
#!/bin/bash
date
docker exec -ti database_service /bin/bash -c '
mongo -usensekeeper -psensekeeper --authenticationDatabase sensekeeper << EOF
use sensekeeper;
print("识别总记录数")
db.recognition.chunk.find().count();
new Date(Date.now() - 16*24*60*60*1000)
print("显示要删除记录的最小时间和最大时间,和记录总数");
db.recognition.chunk.find({expireAt:{\$lte:new Date(Date.now() - 16*24*60*60*1000)}},{expireAt:1,_id:0}).sort({"expireAt":-1}).limit(1);
db.recognition.chunk.find({expireAt:{\$lte:new Date(Date.now() - 16*24*60*60*1000)}},{expireAt:1,_id:0}).sort({"expireAt":1}).limit(1);
db.recognition.chunk.find({expireAt:{\$lte:new Date(Date.now() - 16*24*60*60*1000)}},{expireAt:1,_id:0}).sort({"expireAt":1}).count();
print("开始执行删除")
db.recognition.chunk.deleteMany({expireAt:{\$lte:new Date(Date.now() - 16*24*60*60*1000)}}