如何在JavaScript中为MongoDb数据库获取isodate时间戳

如何在JavaScript中为MongoDb数据库获取isodate时间戳,mongodb,mapreduce,mongoid,Mongodb,Mapreduce,Mongoid,我正在使用mongoexport工具从集合中导出数据。我的收藏有conn\u time字段和ISODate时间戳。我想导出过去15分钟内加载的数据 我像下面那样使用它,但它返回错误:“位置太多了。” 完整命令: mongoexport --csv --out /tmp/aud_createcoll_log.csv --host abc.corp.ner:1089 --db test --collection aud_create_log -q '{conn_time:{$gt:"Fri'

我正在使用
mongoexport
工具从集合中导出数据。我的收藏有
conn\u time
字段和
ISODate
时间戳。我想导出过去15分钟内加载的数据

我像下面那样使用它,但它返回错误:
“位置太多了。”

完整命令:

mongoexport --csv --out /tmp/aud_createcoll_log.csv 
--host abc.corp.ner:1089 
--db test --collection aud_create_log 
-q '{conn_time:{$gt:"Fri' Sep 06 2013 22:23:20 GMT+0000 '(GMT)",$lt:"Fri' Sep 06 2013 22:38:20 GMT+0000 '(GMT)"}}' 
--fields app_name,file_name,conn_time,conn_host,conn_command -u user -p 'aaaaaa' -v

虽然我不能准确地测试您的命令行(因为我没有您的DB),但我推测有几个问题:

  • 您的查询使用了不匹配的引号。您有一个开始的单引号(
    ),然后在查询中多次使用单引号,而不以任何方式转义它。因此,命令行解析器变得非常混乱,并且误解命令行的其余部分是附加参数(实际上太多了)。如果您想转义单引号,可以使用
    \'
    ,但正如您将在下一个建议中看到的,您不应该需要额外的引号
  • 我建议您在查询中使用
    ISODate
    ,但您需要确保它的格式正确。例如:
    ISODate(“2013-09-07T20:03:38.739Z”)
    。正如在第一点中提到的,通过这种方式,您不需要使用超过双引号来表示完整日期
  • 该命令如下所示(如我所说,我还没有对其进行测试):


    当我使用java脚本时,我得到的日期格式为Fri'Sep 06 2013 22:23:20 GMT+0000'(GMT)。但我希望iso date使用mongo查询数据collections@user2609099-这是个问题吗?我的回答对你有用吗?
    mongoexport --csv --out /tmp/aud_createcoll_log.csv 
    --host abc.corp.ner:1089 
    --db test --collection aud_create_log 
    -q '{conn_time:{$gt:"Fri' Sep 06 2013 22:23:20 GMT+0000 '(GMT)",$lt:"Fri' Sep 06 2013 22:38:20 GMT+0000 '(GMT)"}}' 
    --fields app_name,file_name,conn_time,conn_host,conn_command -u user -p 'aaaaaa' -v
    
     mongoexport --csv --out /tmp/aud_createcoll_log.csv 
     --host abc.corp.ner:1089 
     --db test --collection aud_create_log 
     -q '{conn_time:{$gt:ISODate("2013-09-06T22:23:20"),$lt:ISODate("2013-09-06T22:38:20")}}' 
     --fields app_name,file_name,conn_time,conn_host,conn_command -u user -p 'aaaaaa' -v