0

我正在尝试使用 bash 获取过去 24 小时的集合的 mongodump,但由于我无法在 mongodump 语句的查询参数中使用自定义日期而出现错误。

timeInMs=$(expr "$(date +'%s%3N')" - 86400000)

mongodump -u user -p password --authenticationDatabase admin --db dbname -c collection --query '{startTime:{$gte:new Date(${timeInMs})}}'

timeInMs符合预期(24 小时前的毫秒时间),但问题是查询正确。使用了很多命中和试验,但还没有成功。使用过以下内容:

'{startTime:{$gte:{"$date":"${timeInMs}"}}}'

"{startTime:{$gte:new Date\"(${timeInMs})\"}}"

'{startTime:{$gte:new Date("${timeInMs}")}}'

4

1 回答 1

1

您需要正确获取报价:

timeInMs=$(expr "$(date +'%s%3N')" - 86400000)
mongodump -u user -p password --authenticationDatabase admin --db dbname -c collection --query '{startTime:{$gte:new Date('"$timeInMs"')}}'

为了更好的可读性:

mongodump -u user \
-p password \
--authenticationDatabase admin \
--db dbname -c collection --query  '{startTime:{$gte:new Date('"$timeInMs"')}}'
于 2015-02-26T15:07:34.930 回答