mongo export -q 日期函数问题[重复]
Posted
技术标签:
【中文标题】mongo export -q 日期函数问题[重复]【英文标题】:mongo export -q issue with date function [duplicate] 【发布时间】:2017-10-28 10:23:53 【问题描述】:mongoexport -h "hostname" -u "username" -p password -d "dbname" -c "collection" -q '"REQUEST_TIMESTAMP": "$gt:new Date(ISODate().getTime() - 1000 * 60 * 60)" ' -o output.json
我想使用 mongoshell 获取过去 1 小时的记录,上述日期函数在 mongodb 中完美运行,但在 mongoshell 中无法正常运行。
你能解释一下过去一小时如何使用 epoch 格式吗,它应该是动态的而不是硬编码的
【问题讨论】:
【参考方案1】:假设我们有以下数据:
> db.test.find()
"_id" : ObjectId("59f45e259ea74673bf2e80fe"), "d" : ISODate("2016-10-28T10:00:00Z")
"_id" : ObjectId("59f45e289ea74673bf2e80ff"), "d" : ISODate("2016-11-28T10:00:00Z")
"_id" : ObjectId("59f45e2d9ea74673bf2e8100"), "d" : ISODate("2016-12-28T10:00:00Z")
"_id" : ObjectId("59f45e319ea74673bf2e8101"), "d" : ISODate("2017-12-28T10:00:00Z")
"_id" : ObjectId("59f45e379ea74673bf2e8102"), "d" : ISODate("2018-12-28T10:00:00Z")
"_id" : ObjectId("59f45e3a9ea74673bf2e8103"), "d" : ISODate("2018-12-28T11:00:00Z")
"_id" : ObjectId("59f45e3d9ea74673bf2e8104"), "d" : ISODate("2018-12-28T12:00:00Z")
我们可以使用与您类似的查询导出它,但从 bash 中添加日期
$ date
28 Oct 2017 12:01:21
$ d=$(date -d '1 hour ago' +%s%N | cut -b1-13)
$ ./mongoexport -d "test" -c "test" -q '"d": $gt: new Date('$d') ' -o output.json
那么如果我们看一下输出:
$ cat output.json
"_id":"$oid":"59f45e319ea74673bf2e8101","d":"$date":"2017-12-28T10:00:00.000Z"
"_id":"$oid":"59f45e379ea74673bf2e8102","d":"$date":"2018-12-28T10:00:00.000Z"
"_id":"$oid":"59f45e3a9ea74673bf2e8103","d":"$date":"2018-12-28T11:00:00.000Z"
"_id":"$oid":"59f45e3d9ea74673bf2e8104","d":"$date":"2018-12-28T12:00:00.000Z"
【讨论】:
没问题,请采纳答案:-) 接受老板。你摇滚!以上是关于mongo export -q 日期函数问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 ES6 中使用 module.exports 导出多个函数
mongo export SyntaxError:missing;在声明@(shell)之前:1:14