Mongodb mongoexport-以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": [

我正在尝试从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": [
        {
            "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