我正在尝试使用mongodump命令转储在特定日期创建的一堆记录.记录包括一个"ts"字段,它是一个MongoDB Date()对象.
mongodump采用-q参数,该参数可用于运行查询以选择要包含在转储中的记录.不幸的是,-q参数需要在JSON中提供,并且不清楚如何在纯JSON中表达"少于此日期,超过此日期"的查询(通常这样的查询将使用' new Date()'constructor)"
有小费吗?我已经尝试使用{$ date:unix-timestamp-in-milliseconds}格式,但它对我不起作用.
Sim*_*son 59
我解决了 - 我正在寻找的神奇咒语是:
mongodump --query "{\"ts\":{\"\$gt\":{\"\$date\":`date -d 2011-08-10 +%s`000},\"\$lte\":{\"\$date\":`date -d 2011-08-11 +%s`000}}}"
Run Code Online (Sandbox Code Playgroud)
eri*_*oco 27
比@ SimonWillison的转义版更人性化的版本:
--query "{ time: { \$gt: new Date(1312959600000), \$lt: new Date(1313046000000) }}"
(注意,仍然需要转义美元符号.)
我通过在shell中创建日期来获得毫秒时间戳,例如:
> var targetDateStart = new Date(2011, 7, 10);
> var targetDateEnd = new Date(2011, 7, 11);
> targetDateStart.getTime();
1312959600000
> targetDateEnd.getTime();
1313046000000
Run Code Online (Sandbox Code Playgroud)
dig*_*ang 18
在MongoDB 3.2中,我们可以使用--queryFile
mongodump选项.
首先,创建一个json文件:
//query.json
{"serverTime": {"$gte": ISODate("2016-01-30T16:00:00.000Z"), "$lt": ISODate("2016-01-31T16:00:00.000Z")}}
Run Code Online (Sandbox Code Playgroud)
接下来,使用mongodump:
mongodump --db <dbName> --collection <collectionName> --queryFile query.json
Run Code Online (Sandbox Code Playgroud)
简单明了.
编辑:修正错别字
添加更新:
mongodump --query
不支持IsoDate
,但Date
以毫秒形式接受.
由于date
OS X中的命令行为不同,date -d 2011-08-10 +%s
因此对我不起作用.如果您遇到同样的问题,请尝试阅读手册或使用:
以秒为单位获取当前时间:
date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"
Run Code Online (Sandbox Code Playgroud)以秒为单位获取特定时间:
date -j -f "%Y-%m-%d %H:%M:%S" "2014-01-01 00:00:00" "+%s"
Run Code Online (Sandbox Code Playgroud)使用单引号版本以避免转义.
mongodump --query '{updated_at: { $gte: Date(1403280000000) } }'
Run Code Online (Sandbox Code Playgroud)这应该可以,关于$ date查询,什么不起作用?:
mongodump --query {"ts":{$gt:{$date:178929000}}}
Run Code Online (Sandbox Code Playgroud)
在查询周围使用单引号。我发现 ISODate() 不起作用。
mongodump --query '{"ts":{$gt:{$date:178929000}}}'
Run Code Online (Sandbox Code Playgroud)
扩展 JSON 格式有效,可以在文档 ( https://docs.mongodb.com/database-tools/mongodump/ ) 中找到。例子:
--query '{ "timest": { "$gte": { "$date": "2020-08-19T00:00:00.000Z" } } }'
归档时间: |
|
查看次数: |
39598 次 |
最近记录: |