Mongoexport csv-文档的打印时间戳

时间:2019-05-02 09:57:13

标签: mongodb mongoexport

我需要在csv中连同其他字段一起创建文档的时间戳。我如何使用mongo export获得该信息?

1 个答案:

答案 0 :(得分:0)

mongoexport不允许对要导出的集合进行转换,因此,您需要获取导出的CSV并使用其他工具将ObjectId转换为日期。这是一个超级丑陋的shell脚本示例:

...get objectId \
 | sed -E 's|([0-9a-f]{8}).+|\1|' \
 | xargs -I {} echo '$((16#'{}"))" \
 | xargs -I {} bash -c "echo {}" \
 | xargs -I {} date -d @{}
  • sed-抓取ObjectId的前8个字符
  • $((16#{}))-将这8个字符转换为十进制
  • date -d @{}-将秒转换为日期

所有替代方法是使用mongo聚合框架从ObjectIds获取时间戳,然后使用$out命令将更新的字段保存到新集合中,然后您可以mongoexport从。