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



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

我像下面这样使用它,但它返回错误:"Too many positions."

-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)"}}'

完整命令:

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

虽然我无法完全测试您的命令行(因为我没有您的数据库),但我推测存在一些问题:

  1. 您的查询使用了不匹配的引号。您有一个开始的单引号 ( ' ),然后在查询中多次使用单引号,而不会以任何方式对其进行转义。因此,命令行解析器变得非常混乱和误解,命令行的其余部分是附加参数(实际上太多了)。如果要转义单引号,可以使用',但正如您将在下一个建议中看到的那样,无论如何都不需要额外的引号。
  2. 我建议您在查询中使用ISODate,但您需要确保它的格式正确。例如:ISODate("2013-09-07T20:03:38.739Z") .如第一点所述,这样,您无需使用超过双引号来表示完整日期。

该命令如下所示(正如我所说,我还没有测试过它):

 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

相关内容

  • 没有找到相关文章

最新更新