mongoexport可以用于导出mongodb的数据,但-q命令中的的参数中$gt以及ISO日期的书写格式却不是很确定。

$gt在-q的JSON格式参数中,有直接用’’包裹,如:{'$gt':''}的写法,也有用反斜杠转义\$字符的写法如{\$gt:''},而如果直接写{$gt:''},不使用’’或\则会报错。

关于ISO日期,网上许多资料有用“2019-11-06T10:09:54.677Z”和“2019-11-08T21:45:48”以及“1573220748000”和“ISODate(‘2019-11-11T03:00:00.000Z’)”,甚至用于分隔日期和时间的T是否要加都有不同说法:stackoverflow

参考了stackoverflow中的文章,且根据其链接进入了mongo官网找到了“mongoexport”命令的用法和示例:mongoexport

参考示例的用法,进行了多次实践后证实,mongoexport 3.0.6版的导出命令中-q参数中,大于某个时间的参数格式应该是:{\$gt:ISODate('2019-11-11T00:00:00.000Z')},这个参数就是用于筛选出2019年11月11日当天0点之后的数据。

完整的命令示例:

1
mongoexport -d browser_production -c logs --type=csv -f _id,companyId,type,currentUser,relatedId,detail,createdAt -q "{'type':'客户端登录','createdAt':{\$gte:ISODate('2019-11-11T00:00:00.000Z')}}" -o /home/logs.csv