mongodump按日期导出数据
参考文章:
- MongoDB 日期查询与mongodump 按日期范围导出数据
- mongodump按照日期时间范围导出数据
- Mongodb完全使用教程
官网看了相关文档,不过没看懂,,解决问题就行了,剩下的交给DBA
mongodb查询时间戳可使用Date和ISODate两种方式 Date
如果我想要取2017.3到2017.6的数据条数:
db.session_1.find({"timestamp":{$gte:new Date(2017,3,1)},"timestamp":{$lte:new Date(2017,6,1)}}).count()
不过我发现用Date卡时间不管用,可能是库里数据的问题,只支持ISODate
ISODate
查询大于等于北京时间2017.9.1 凌晨的数据记录,也就是2017.9.1 凌晨至今的数据记录。ISODate指的是标准时间,东八时区相差8小时
db.session_1.find({"timestamp":{$gte:ISODate("2017-09-01T16:00:00Z")}}).count()
mongodump按日期导出数据 mongodump 的
--query
或-q
选项可以指定查询范围,但不支持ISODate格式:root@doushuo-virtual-machine:~# mongodump --port 27017 -d my_db -c my_collection -q '{"timestamp":{$gte:ISODate("2017-06-01T16:00:00Z")}}' -o test
connected to: 127.0.0.1:27017
assertion: 16619 code FailedToParse: FailedToParse: Bad characters in value: offset:19
root@doushuo-virtual-machine:~#
将时间戳转换为毫秒:
root@doushuo-virtual-machine:~# date -d 2017-06-01 +%s
1496246400
毫秒补三个0,即可正常导出:
root@doushuo-virtual-machine:~# mongodump --port 27017 -d my_db -c my_collection -q '{"timestamp":{$gte:Date(1496246400000)}}' -o test
connected to: 127.0.0.1:27017
Thu Dec 28 00:38:13.846 DATABASE: my_dbtotest/my_db
Thu Dec 28 00:38:13.870my_db.my_collection to test/my_db/my_collection.bson
Thu Dec 28 00:38:17.155Collection File Writing Progress: 10000/1079657 0%(objects)
Thu Dec 28 00:38:20.009Collection File Writing Progress: 26400/1079657 2%(objects)
Thu Dec 28 00:38:23.010Collection File Writing Progress: 46000/1079657 4%(objects)
mongodb条件操作符 【mongodump按日期导出数据】用于比较表达式的值,从库中取数据:
- $gt 大于(>)
- $lt 小于(<)
- $gte 大于等于(>=)
- $lte 小于等于(<=)
推荐阅读
- iOS|iOS 设置导航栏的返回按钮只保留箭头
- 数据库|三分钟学会数据库, date 日期 及格式转换 (开发比较常用YYYYMMDD)
- 辟谷随笔6|辟谷随笔6 清晰了辟谷的内在意义
- Python|自从学会了用python解析视频,都不用去找下载按钮在哪了,是真的方便
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 牛人进化+|牛人进化+ 按自己的意愿过一生
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- 0811~2017下个旅程~利川
- ?2019-03-10
- 特别的假期