首页 > 解决方案 > Mongoexport csv - 打印文档的时间戳

问题描述

我需要在 csv 中创建文档的时间戳以及其他字段。我如何使用 mongo 导出来获得它?

标签: mongodbmongoexport

解决方案


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从中获取的新集合中。


推荐阅读