对于ISODate,使用带有--query的mongoexport

时间:2016-03-30 20:27:19

标签: mongodb mongodb-query mongoexport

我有这个查询,但我收到语法错误:意外标识符

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

什么是错的?

2 个答案:

答案 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.}}