Mongodb

mongodump 和 mongoexport 有什麼區別?

  • April 26, 2021

我知道當我們必須在數據庫和集合級別進行完整備份時,我們使用 mongodump 但使用 mongodump 我們也可以備份特定記錄,那麼 mongodump 和 mongoexport 有什麼區別?

mongodump生成數據的二進制副本;它可以創建更好、更有效的備份。

mongoexport可以創建 JSON 文件;這些可以被其他程序使用,並且基本上是人類可讀的。

根據 MongoDB BOL,這裡 的 mongodump 是一個用於創建數據庫內容的二進制導出的實用程序。可以從其中一個或多個實例 mongodump中導出數據。僅擷取數據庫中的文件。生成的備份節省空間。預設情況下,不擷取.mongod``mongos``mongodump``mongodump``local database

更改version 3.4MongoDB 3.4添加了對只讀視圖的支持。預設情況下,mongodump僅擷取 a view’s metadata:它不會創建視圖中包含的文件的二進制導出。要在視圖中擷取文件,請使用--viewsAsCollections.

其中 MongoDB 文件這裡mongoexport 是一個實用程序,可以生成儲存在 MongoDB 實例中的數據的JSON或**CSV導出。**從系統命令行而不是mongoshell 執行 mongoexport。

mongoexport 所需訪問權限

  1. mongoexport需要對目標數據庫進行讀取訪問。
  2. 確保連接使用者至少擁有目標數據庫的讀取角色。
  3. 連接到強制身份驗證的mongodmongos時,請確保使用基於 configured authentication mechanism.

另外,請注意

警告:避免使用mongoimportmongoexport進行完整實例生產備份。它們不能可靠地保留所有豐富的 BSON 數據類型,因為 JSON 只能表示 BSON 支持的類型的子集。使用MongoDB 備份方法中的mongodumpmongorestore來 實現這種功能。

雖然, MongoDB 4.4 文件中不存在這樣的警告。

引用自:https://dba.stackexchange.com/questions/194370