2016-02-06 119 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

相关问题