我有这个查询,但我收到语法错误:意外标识符
mongoexport --db ium --collection events \
--query 'db.events.find({'created_at' : {
$gte: ISODate("2016-03-01T00:00:00.001Z"),
$lte: ISODate("2016-03-29T23:59:59:59.000Z")
},
"name" : "UPDATE_SUCCESS"})' \
--out guille1_test.json
什么是错的?
答案 0 :(得分:8)
您需要在使用mongoexport的查询中使用"extended json"。因此,指定“日期”的方式是使用$date
。而--query
只是JSON格式的“查询字符串”。不是整个命令进入shell:
mongoexport --db ium --collection events \
--query '{
"created_at": {
"$gte": { "$date": "2016-03-01T00:00:00.001Z" },
"$lte": { "$date": "2016-03-29T23:59:59.000Z" }
},
"name": "UPDATE_SUCCESS"
}' \
--out guile1_test.json
还请注意$lte
参数中的更正日期字符串,当然还有''
围绕JSON参数主体的“引用”使用,""
围绕内部表达式和值。 重要这些类型的引号是不同的,以及“shell参数”应该将它们的“外部”引用为''
,否则“shell”会尝试评估包含的表达式
答案 1 :(得分:0)
实现它的最佳方法如下。因为新的Date和IOSDate对于此命令将是无效的文字。
对于远程主机
mongoexport --host {{host}} --username {{username}} --password {{passord}} --authenticationDatabase admin --db {{Database}} --collection {{collection Name}} --query '{ "date" : { "$gt" : {"$date":"2019-10-31T00:00:00.000Z"} } }' --type json --out {{path of directory where you would want to export file.}}
对于本地主机
mongoexport --db {{Database}} --collection {{collection Name}} --query '{ "date" : { "$gt" : {"$date":"2019-10-31T00:00:00.000Z"} } }' --type json --out {{path of directory where you would want to export file.}}