中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MongoDB mongoexport工具怎么用

發布時間:2021-03-24 09:35:15 來源:億速云 閱讀:301 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關MongoDB mongoexport工具怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

01  基本介紹

   mongoexport是一個數據導出的工具,使用的時候類似mysql中的select into outfile語法,可以將某個數據庫中的數據以json或者csv的格式導出來。

我們可以通過直接連接mongos或者連接mongod來導出數據。如果你的集群是分片集群,連接mongos會導出所有分片上這個集合的相關數據。

02  常用參數

-h:指明數據庫宿主機的IP

-u:指明數據庫的用戶名

-p:指明數據庫的密碼

-d:指明數據庫的名字

-c:指明collection的名字

-f:指明要導入那些列

--type:默認是json類型,可以導出csv類型

-o:指明要導出的文件名稱,如果不指定,則導出到標準輸出

-q:查詢過濾器,可以輸入一個json,從而導出查詢后的結果

上面的常用參數還有對應的長參數選項,例如-h也可以輸入--host代替。參數的詳細介紹,可以通過mongoexport --help獲取到。

03  命令

1、導出數據庫new下面的test集合的number字段,命令如下:

mongoexport --port=27016 -u "yeyz" --authenticationDatabase "admin" -p "123456" -d new -c test --fields=number -o /data/test.json
2021-02-23T22:09:52.481+0800 connected to: localhost:27016
2021-02-23T22:09:52.512+0800 exported 2000 records

我們看下導出的結果:

{"_id":{"$oid":"6006c46993a711b384cc8c92"},"number":1000.0}
{"_id":{"$oid":"6006c46993a711b384cc8c93"},"number":1001.0}
{"_id":{"$oid":"6006c46993a711b384cc8c94"},"number":1002.0}
{"_id":{"$oid":"6006c46993a711b384cc8c95"},"number":1003.0}
{"_id":{"$oid":"6006c46993a711b384cc8c96"},"number":1004.0}
{"_id":{"$oid":"6006c46993a711b384cc8c97"},"number":1005.0}
{"_id":{"$oid":"6006c46993a711b384cc8c98"},"number":1006.0}
{"_id":{"$oid":"6006c46993a711b384cc8c99"},"number":1007.0}
{"_id":{"$oid":"6006c46993a711b384cc8c9a"},"number":1008.0}
{"_id":{"$oid":"6006c46993a711b384cc8c9b"},"number":1009.0}
{"_id":{"$oid":"6006c46993a711b384cc8c9c"},"number":1010.0}
{"_id":{"$oid":"6006c46993a711b384cc8c9d"},"number":1011.0}
{"_id":{"$oid":"6006c46993a711b384cc8c9e"},"number":1012.0}

可以看到,即使我們只指定了number字段,也會自動為我們導出_id字段,由此可以得出結論,:如果導出的格式是json類型的,_id字段是默認導出的。

默認導出的類型是json類型,如果我們想導出csv類型,可以增加--type=csv參數。添加了這個參數之后,結果如下:

number
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011

可以看到,就不會自動的輸出_id這個字段了。這個可能也是一個值得討論的點。我認為可能是這個工具的一個小bug,csv類型不輸出_id字段,而json類型輸出_id字段。

2、導出某個特定的查詢結果,例如導出number=10的那條記錄:

[root@VM-0-14-centos ~]# mongoexport --port=27016 -u "yeyz" --authenticationDatabase "admin" -p "123456" -d new -c test --type=csv -q {"number":10} --fields=number -o /data/test.json 
2021-02-23T22:38:18.319+0800 connected to: localhost:27016
2021-02-23T22:38:18.321+0800 exported 1 record

可以直接在-q參數后面跟查詢條件。

04  經驗值

   今天的操作是在分片集群上進行操作的,一共7個分片,我導出了3億多條數據,單個分片上大概5000w條數據吧,每條數據導出2個字段,每個分片上的導出時間大約在2個小時左右。

機器硬件配置:

  • SATA硬盤4TB

  • 普通內存128G

  • intel 至強E5-4系列

當然,這個值只是個經驗值,如果你的導出的字段比較多的話,或者字段的長度比較長,可能這個值沒有太多的參考意義。

在實際進行數據導出的時候,發現執行導出的mongodb服務器負載有一定上升,內存使用率有一定上升,但是沒有特別明顯性能抖動,整個過程不會鎖數據庫,所以還是比較安全的。

線上操作的時候,尤其是針對敏感的業務,為了最大程度上降低對業務的影響,如果你是在mongos上執行數據導出,建議先保證這個mongos對業務不可見,執行導出之后,在重新對外提供服務;如果你是在mongod上進行數據導出,則最好選擇secondary節點進行,避免對線上業務的影響。

05  反向導入

   mongodb還有一個工具,叫mongoimport,可以將mongoexport導出的數據導入到mongodb數據庫中,下面是一個mongoimport的命令:

[root@VM-0-14-centos ~]# mongoimport --port=27016 -u "yeyz" --authenticationDatabase "admin" -p "123456" -d new -c test1 --type=csv --fields=number --file=/data/test.csv
2021-02-23T22:44:21.930+0800 connected to: localhost:27016
2021-02-23T22:44:22.146+0800 imported 2001 documents

   mongoimport的整個操作類似insert操作,參數方面和mongoexport大同小異,唯一多的比較重要的參數就是writeconcern的值,這個值設置的級別越高,那么導出數據的時間就越慢,但是數據安全性會越高。

感謝各位的閱讀!關于“MongoDB mongoexport工具怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

古浪县| 琼海市| 江北区| 崇仁县| 宁波市| 翁牛特旗| 宝坻区| 买车| 贵港市| 临汾市| 革吉县| 太湖县| 百色市| 无极县| 建湖县| 镇坪县| 土默特右旗| 榆社县| 成都市| 奎屯市| 都兰县| 曲周县| 繁昌县| 芜湖市| 屯留县| 肃北| 石首市| 文登市| 霍山县| 平泉县| 中西区| 兴文县| 南宫市| 富源县| 中卫市| 云霄县| 斗六市| 章丘市| 商南县| 来宾市| 略阳县|