2016-02-06 107 views
4

我有一個來自MongoDB轉儲的.bson文件。轉儲還會生成一個似乎包含索引定義的.metadata.json文件。mongorestore metadata.json文件

{ 
    "options": {}, 
    "indexes": [ 
     { 
      "v": 1, 
      "key": { 
       "_id": 1 
      }, 
      "name": "_id_", 
      "ns": "test.oneMillionDocuments" 
     } 
    ] 
} 

我從這個假設從.bson文件恢復不包含索引。

  • 如何使用.metadata.json文件?我需要分別恢復嗎?

我恢復完成了下面幾行:

2016-02-06T19:18:56.397+0000 [#######################.] test2.oneMillionRecordsRestore 9.7 GB/9.7 GB (99.5%) 
2016-02-06T19:18:58.475+0000 restoring indexes for collection test2.oneMillionRecordsRestore from metadata 
2016-02-06T19:18:58.485+0000 finished restoring test2.oneMillionRecordsRestore (1000000 documents) 
2016-02-06T19:18:58.488+0000 done 

有一條線說這是恢復的指標,但具體引用.metadata.json文件。

回答

7

您不必對metadata.json文件做任何特定操作:只要運行mongorestore,它將與.bson文件一起閱讀,前提是它位於同一目錄中。你會看到一行輸出,從中可以推斷出它是否已讀或未:

2016-02-06T20:22:08.652+0100 reading metadata for mydb.message from dump/mydb/message.metadata.json 

不過,我認爲有地方被忽略(如衝突的索引定義)的情況下。雖然導入不會失敗,但您會在日誌中看到一行,告訴您元數據(或其部分)被忽略。

+0

礦完成了一個稍微不同的線......我想我將不得不添加一些索引,而不是'_id'來看它。 – BanksySan

+0

我已經添加了我的恢復如何完成問題。 – BanksySan

+0

我提到的這一行是在數據插入之前的日誌中打印的。您複製的行確認讀取了「oneMillionRecordsRestore.metadata.json」:'mongorestore'只能找到索引定義,因此可以恢復此文件中此集合的索引。 – Nicolas

相關問題