之前的mongodb export发现不能用了,T3带ui的版本,试用到期不支持导出。

根据文档,是因为server版本更新后 tool版本没有升级,(refs文档)

按文档下载bin,后解压到更新本地文件夹,替换/usr/local/bin里的文件就算升级了。

后测试发现时间筛选有些不同,原来的脚本不能用了,根据文档demo更新如下后可用

  • $date 代替mongosh中的ISODate
#!/bin/bash

mongoexport --host 127.0.0.1 --port 27017 --db DLogDb --username Dabc --password D90520   -c DevLogCollection --type=csv \
            --fields DeviceId,DateTime,Content \
            -q '{"DeviceId":"xxxxxxZ0","DateTime":{"$gte":{"$date":"2023-08-17T00:00:00.000Z"},"$lte":{"$date":"2023-08-18T00:00:00.000Z"}}}' \
            --out report.csv

  • Regx代替mongosh中的//

模糊查询后导出

mongosh 使用/条件/作为模糊查询,如下,匹配%SendSmsAsync%,


db.SmsWebApiLog.find({'MessageTemplate.Text':/SendSmsAsync/}).count()

在mongoexport中使用Regx语句

mongoexport --host 127.0.0.1 --port 27017 --db MyDb --username Use --password 
 MyPwd   -c SmsApiLog --type=csv \
             --fields UtcTimeStamp,RenderedMessage \
             -q '{"MessageTemplate.Text":{"$regex":"SendSmsAsync"}}' \
             --out smsReport.csv
 

其中"$regex":"SendSmsAsync"等价%SendSmsAsync%。

更多推荐