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

 我在這個問題上搞了一晚上,記錄一下,覺得可能是由於json和bson之間的不同造成的,具體原因不是很明白,希望有了解的各路俠客們指導一下,謝謝。

 

要想還原的話,用mongoimport就可以了

 

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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章