3.導出數據
MongoDB中的mongoexport工具可以把一個庫中的collection導出成JSON格式或CSV格式的文件。可以通過指定的內置參數導出數據項,當然導出的時候可以排序和指定條件。
查看mongo信息,安裝位置/啟動方法等
$brewinfo mongo
mac 采用brew安裝,位置/usr/local/Cellar/mongodb, 版本可能不同,依據查看的信息即可找到.
$ 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語法
mongoexport -h dbhost -d dbname -c collectionName -o output
-h ?arg ????主機 --port arg ?端口 -u ?arg ????用戶名 -p ?arg ????密碼 -d ?arg ????數據庫 -c ?arg ????集合 -f ?arg ????字段名 逗號隔開 -q ?arg ????查詢條件 json格式 --csv ??????導出csv格式 -o ?arg ????導出的文件名
3.2實例一[json格式]
導出test數據庫中的users集合,格式默認為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
注意事項
can notuse--fieldswheninputtypeisJSON
3.3實例二[csv格式]
如果我們需要導出CSV格式的數據,則需要使用–csv參數,具體如下所示:
CSV定義
CSV(逗號分隔值文件格式): 逗號分隔值(Comma-Separated Values,CSV,有時也稱為字符分隔值,因為分隔字符也可以不是逗號),其文件以純文本形式存儲表格數據(數字和文本)。純文本意味著該文件是一個字符序列,不含必須像二進制數字那樣被解讀的數據。CSV文件由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見的是逗號或制表符。通常,所有記錄都有完全相同的字段序列。
導出test數據庫中的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
腦洞?----怎么全部導出所有字段????
答案: 老實點, 一個個寫吧.
3.4實例三[添加query]
導出test數據庫中的users集合中的"name,age"字段,中間不可有空格, 并且只篩選age大于20的數據
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
結果如下,滿足以上的需求
name,age lisi,29