linux下删除容器mongo中时间超过当前15天的记录

#!/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)}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值