mongodb 使用MongoExport,如何控制Date字段的输出?

x7yiwoj4  于 2023-04-20  发布在  Go
关注(0)|答案(3)|浏览(140)

我试图将Mongo中的一些数据格式化为CSV。其中一个字段存储为ISODate,因此在查询Mongo时,结果如下:

... ISODate("2011-11-19T00:23:38.786Z") ...

我有一个命令如下:

C:\Mongo\bin\mongoexport --csv -f "DOB","Name","Email" -c People -d PeopleDataStore -h [hostname]

这个MongoExport命令会产生如下内容:

{ "$date" : 1321579509347 },"Bob","test@test.com"

我怎样才能得到MongoExport输出的日期像“2011-11- 19 T00:23:38.786Z”一样,即不是整数表示,也不是用代码结构 Package 的?
请注意,我尝试从命令行完成所有这些操作,而不是从可以处理结果的应用程序中完成。

30byixjq

30byixjq1#

不要认为仅使用mongoexport是可能的,您需要编写自己的小型导出脚本或后处理日期值,以将整数(自1970年1月1日以来的毫秒)转换为ISO字符串格式。

qvtsj1bj

qvtsj1bj2#

在mongo 2.0.1上试过,输出结果正是你想要的

c:\Servers\Mongo\bin>mongoexport.exe --csv -f "CreatedTime" -c User -d ce -h localhost
connected to: localhost
CreatedTime
2011-10-28T01:12:40Z
...
of1yzvn4

of1yzvn43#

你可以使用sed来替换它。
首先,你可以使用mongoexport来获取文件。一旦你有了文件,你可以使用sed来删除'$date'。

sed -i 's/"\$date"/"date"/g' sample.json

相关问题