mongodb导出csv

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

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

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

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

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

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

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

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

扫描二维码关注公众号,回复: 204927 查看本文章
Sql代码   收藏代码
  1. > ISODate("2012-02-17T15:00:00Z").valueOf()  
  2. 1329490800000  

 然后

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

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

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

 我在这个问题上搞了一晚上,记录一下,觉得可能是由于json和bson之间的不同造成的,具体原因不是很明白,希望有了解的各路侠客们指导一下,谢谢。

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

Sql代码   收藏代码
  1. mongoimport -d search_logs -c key_words --file mongo_$(date +%F).json  

猜你喜欢

转载自awen7916.iteye.com/blog/2405959