MongoDB中的mongoexport工具可以把一個(gè)庫(kù)中的collection導(dǎo)出成JSON格式或CSV格式的文件堕花『艹危可以通過(guò)指定的內(nèi)置參數(shù)導(dǎo)出數(shù)據(jù)項(xiàng)固耘,當(dāng)然導(dǎo)出的時(shí)候可以排序和指定條件框往。
查看mongo信息,安裝位置/啟動(dòng)方法等
$brewinfo mongo
mac 采用brew安裝,位置/usr/local/Cellar/mongodb, 版本可能不同,依據(jù)查看的信息即可找到.
$ cd/usr/local/Cellar/mongodb/3.4.0/bin $ ls ?bsondump ???mongodump ???mongoimport ???mongorestore ???mongotop mongo ???????mongoexport ????mongooplog ???mongos mongod ???????mongofiles ???mongoperf ???mongostat
比如我們查看mongoexport的使用方法
#即可 $ ./mongoexport --help ....
3.1語(yǔ)法
mongoexport -h dbhost -d dbname -c collectionName -o output
-h ?arg ????主機(jī) --port arg ?端口 -u ?arg ????用戶(hù)名 -p ?arg ????密碼 -d ?arg ????數(shù)據(jù)庫(kù) -c ?arg ????集合 -f ?arg ????字段名 逗號(hào)隔開(kāi) -q ?arg ????查詢(xún)條件 json格式 --csv ??????導(dǎo)出csv格式 -o ?arg ????導(dǎo)出的文件名
3.2實(shí)例一[json格式]
導(dǎo)出test數(shù)據(jù)庫(kù)中的users集合,格式默認(rèn)為json
$ mongoexport -d test -c users -o /Users/51testing/Desktop/users 2017-03-30T10:24:03.147+0800connected to: localhost 2017-03-30T10:24:03.147+0800exported 4 records
注意事項(xiàng)
can notuse--fieldswheninputtypeisJSON
3.3實(shí)例二[csv格式]
如果我們需要導(dǎo)出CSV格式的數(shù)據(jù)焚廊,則需要使用–csv參數(shù)捉捅,具體如下所示:
CSV定義
CSV(逗號(hào)分隔值文件格式): 逗號(hào)分隔值(Comma-Separated Values撤防,CSV,有時(shí)也稱(chēng)為字符分隔值棒口,因?yàn)榉指糇址部梢圆皇嵌禾?hào))寄月,其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個(gè)字符序列无牵,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)漾肮。CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔茎毁;每條記錄由字段組成克懊,字段間的分隔符是其它字符或字符串,最常見(jiàn)的是逗號(hào)或制表符七蜘。通常谭溉,所有記錄都有完全相同的字段序列。
導(dǎo)出test數(shù)據(jù)庫(kù)中的users集合中的"name,age"字段,中間不可有空格
$ mongoexport -d test -c users --type=csv -f"name,age"-o/Users/51testing/Desktop/user_csv12017-03-30T10:40:19.909+0800connectedto:localhost2017-03-30T10:40:19.909+0800exported4records
腦洞?----怎么全部導(dǎo)出所有字段????
答案: 老實(shí)點(diǎn), 一個(gè)個(gè)寫(xiě)吧.
3.4實(shí)例三[添加query]
導(dǎo)出test數(shù)據(jù)庫(kù)中的users集合中的"name,age"字段,中間不可有空格, 并且只篩選age大于20的數(shù)據(jù)
BWF-huanghaowei:bin51Code$ mongoexport -d test -c users --type=csv -f"name,age"-q'{age:{$gt: 20}}'-o/Users/51testing/Desktop/user_csv22017-03-30T11:06:53.023+0800connectedto:localhost2017-03-30T11:06:53.047+0800exported1record
結(jié)果如下,滿(mǎn)足以上的需求
name,age lisi,29