mongoexport 带条件导出数据
mongoexport 带条件导出数据
jeremyli90 发表于8个月前
mongoexport 带条件导出数据
  • 发表于 8个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

mongodb的mongoexport命令的使用

mongodb还提供了mongoexport 和 mongoimport 这两个命令来导出或导入数据,导出的数据是json格式的,也可以是csv格式的。也可以实现备份和恢复的功能。

具体用 mongoexport --help查看。这里主要介绍一下-q这个条件怎么写。

 

比如我要导出username='test'的所有记录,则可以写成

mongoexport -d search_logs -c key_words -q "{'username' : 'test'}" -o mongo_$(date +%F).json

 注:$(date +%F)为shell命令,会输出当前日期,格式为2012-02-22 

 

如果要导出大于某个时间段内的数据,比如,我的数据结构为

db.key_words.find({request_time:new Date(1329493503417)})
{ "_id" : ObjectId("4f3e75ffd6194c0b1e000001"), "username" : "test800", 
"request_time" : ISODate("2012-02-17T15:45:03.417Z"), "search_word" : "s" }

 

我要导出reques_time大于"2012-02-17T15:00:00Z"这个时间的数据,则先把这个时间类型做一下转换

> ISODate("2012-02-17T15:00:00Z").valueOf()
1329490800000

 然后

mongoexport -d search_logs -c key_words -q '{request_time:{$gte:new Date(1329490800000)}}' 
-o mongo_$(date +%F).json

 注意,如果-q后面的条件是用“”双引号括起来的话$符需要做一下转义\$

mongoexport -d search_logs -c key_words -q "{request_time:{'\$gte':new Date(1329490800000)}}" 
-o mongo_$(date +%F).json

 

mongo 导出CSV格式的数据:

mongoexport -uroot -p123456 -hxxx -d db1 -c table1 -q '{"col1" : "xxx"}' -o tp3.txt --limit=20000 --fields="col1,col2,col3" --type='csv'

 

要想还原的话,用mongoimport就可以了

mongoimport -d search_logs -c key_words --file mongo_$(date +%F).json

 

mongoexport -uroot -p123456 -h192.168.11.149 -d dbtest -c test
 -q '{$and :[{createTime: {$lt: new Date(1490975999999)}}, {createTime: {$gte: new Date(1488297600000)}}]}' -o 03.txt

mongoexport -uroot -p123456 -h192.168.11.118 -d dbtest -c test
 -q '{$and : [{startTime : {$lt: NumberLong("1485878400000")}}, {startTime : {$gte: NumberLong("1383200000000")}}]}' -o 01.txt

 

 

 

 

标签: MongoDB
共有 人打赏支持
粉丝 2
博文 29
码字总数 22189
×
jeremyli90
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: