8

我有一个.bson来自 MongoDB 转储的文件。转储还会生成一个.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文件。

4

1 回答 1

11

您不必对metadata.json文件执行任何特定操作:只需运行它,只要它位于同一目录中,它将mongorestore与文件一起被读取。.bson您将在输出中看到一行,您可以从中推断它是否已被读取:

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

但是,我认为在某些情况下它会被忽略(例如冲突的索引定义)。导入不会失败,但您会在日志中看到一行,告诉您元数据(或其中的一部分)被忽略了。

于 2016-02-06T19:24:01.417 回答