Mongodb mongoexport-以ISO数据格式导出
我正在尝试从Mongodb导出数据,其中日期以ISO格式存储。 例如 当我将导出命令编写为Mongodb mongoexport-以ISO数据格式导出,mongodb,isodate,mongoexport,Mongodb,Isodate,Mongoexport,我正在尝试从Mongodb导出数据,其中日期以ISO格式存储。 例如 当我将导出命令编写为 mongoexport --host localhost:27018 --db mydb --collection mycoll --query '{"log.ts":{$gte :new Date(1431619200000)}}' --out test_1.json 它以JSON格式提供结果,但日期格式是数字格式 { "_id": "abcdef", "log": [
mongoexport --host localhost:27018 --db mydb --collection mycoll --query '{"log.ts":{$gte :new Date(1431619200000)}}'
--out test_1.json
它以JSON格式提供结果,但日期格式是数字格式
{
"_id": "abcdef",
"log": [
{
"ts": {
"$date": 1431624111000
},
"visitorId": 219301285
},
{
"ts": {
"$date": 1431667764000
},
"visitorId": 0
}
],
"uts": {
"$date": 1431624110589
}
}
我想要的是日期应该是ISO格式,而不是数字
我该怎么做
我尝试使用下面的格式,但它不工作,并给出错误
mongoexport --host localhost:27018 --db mydb --collection mycoll --query "{'log.ts':{'$gte' :{'$date':'2015-05-15 10:00:00.000Z'}}}" --out test_1.json
是此处要使用的格式
mongoexport --host localhost:27018 --db mydb --collection mycoll --query
'{"log.ts":{$gte: ISODate("2015-01-20T15:00:00Z")}}' --out test_1.json
这是未经测试的代码,但类似的东西对我很有用。
mongoexport
作为其输出生成。使用该格式,日期表示为{“$date”:“}
,但是
的表示在MongoDB版本中并不相同:
- 以开头(引用文档):
“
是一种ISO-8601日期格式,在模板
后面有一个强制时区字段。”YYYY-MM-DDTHH:MM:ss.mmm
- 截止到,日期表示为“自UTC纪元(1.9.1版之前无符号)起的64位带符号整数(毫秒)。”
如果您想直接从
mongoexport
获取“新”ISO日期表示,您必须至少更新到MongoDB 2.6。否则,您将有:
- 使用您喜爱的脚本语言对数据进行后期处理
- 或者修补(后端口?)从2.6到2.4的更改
这些都不是长期的解决方案,就我自己而言,我会大力推动MongoDB的更新(直到>=3.0)。但正如您所理解的,这可能会导致一些兼容性问题。因此,YMMV.我通过以下查询mongo 2.6.12解决了问题: mongoexport--用户名blabla--密码--db bmv4--集合约会--查询{created:{$gte:new Date(1472680800000)},$or:[{action:“CREA”},{action:“CREV”},{action:“MOVE”},{action:“DELETE”},{action:“FREE”}]}--out bmv4appoints.json
我发现解决方案不起作用。给出了错误。断言:16619 code failedtopasse:failedtopasse:value中的错误字符:offset:16FWIW,举个例子,您的初始查询以及下面作为答案给出的查询都适用于我使用MongoDB 3.0.2。两者都以字符串形式输出日期{code>{u id:“abcdef”,“log:{“ts:{”$date:“2015-05-14T17:21:51.000Z},“visitorId:{”$numberLong:“219301285”},{“ts:{”$date:“2015-05-15T19:20:52.000Z”},“uts:{”$date?
mongoexport --host localhost:27018 --db mydb --collection mycoll --query
'{"log.ts":{$gte: ISODate("2015-01-20T15:00:00Z")}}' --out test_1.json