我试图运行这个:
mongoexport.exe -h *MYHOST* -p *MYPORT* -q "{'time':{'$gte': ISODate('2014-12-21 12:57:00.506Z'),'$lt': ISODate('2014-12-21 12:59:00.506Z')}}"
或者这个(gte& lt without - '):
mongoexport.exe -h *MYHOST* -p *MYPORT* -q {'time':{$gte: ISODate('2014-12-21 12:57:00.506Z'),$lt: ISODate('2014-12-21 12:59:00.506Z')}}
查询在Robomongo上运行正常,但是使用mongoexport会抛出:"位置参数太多"
我知道我可以运行以下代码,但每次我需要执行查询时,我都不想使用日期转换器。
mongoexport.exe -h *MYHOST* -p *MYPORT* -q "{'time':{$gte: new Date(14191
66620506),$lt: new Date(1419166740506)}}"
答案 0 :(得分:12)
mongoexport查询需要使用严格模式的MongoDB扩展JSON。您可以在extended JSON上的MongoDB手册文章中阅读有关扩展JSON的更多内容。在您的特定情况下,在mongoexport命令中编写第一个查询的正确方法是
mongoexport.exe -h *MYHOST* -p *MYPORT* -q "{ 'time' : { '$gte' : { '$date' : '2014-12-21 12:57:00.506Z' },'$lt' : { '$date' : '2014-12-21 12:59:00.506Z' } } }"
答案 1 :(得分:6)
我使用@ wdberkeley的答案作为起点,但该特定的日期字符串对我不起作用。我不得不使用' T'分开日期和时间:
mongoexport --username user --password pass --host host --db dbName --collection coll --type=csv --query '{"_created_at": { "$gte" : { "$date" : "2017-12-21T12:57:00.506Z" } }}'
答案 2 :(得分:0)
不得不在Windows中使用其他语法。
mongoexport-主机192.168.1.5 --db dbname-收集文件--query“ {” ModifyDate“:{” $ lte“:{” $ date“:'2019-02-17T00:00:00.000Z '}}}“
差异是日期周围的单引号。
答案 3 :(得分:0)
我在mongo 2.4上遇到了同样的问题,您需要使用$ date “一个64位带符号的整数,以毫秒为单位”(https://docs.mongodb.com/v2.4/reference/mongodb-extended-json/) 您的情况:
mongoexport.exe -h *MYHOST* -p *MYPORT* -q "{'time':{'$gte':{"$date": 1419166620506},'$lt': {"$date": 1419166740506}}"