Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb mongorestore metadata.json文件_Mongodb_Mongodump_Mongorestore - Fatal编程技术网

Mongodb mongorestore metadata.json文件

Mongodb mongorestore metadata.json文件,mongodb,mongodump,mongorestore,Mongodb,Mongodump,Mongorestore,我有一个来自MongoDB转储的.bson文件。转储还生成一个.metadata.json文件,该文件似乎包含索引定义 { "options": {}, "indexes": [ { "v": 1, "key": { "_id": 1 }, "name": "_id_", "ns": "test.oneMillio

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

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

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

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

我的最后一行略有不同。。。我想我必须添加一些索引而不是
\u id
来查看它。我已经在问题中添加了我的恢复是如何完成的。在插入数据之前,我提到的行会在日志的早期打印出来。您复制的行确认已读取
oneMillionRecordsRestore.metadata.json
mongorestore
只能找到索引定义,因此还原此文件中此集合的索引。就是这样!谢谢。在v3.2.1之前,出现了一个错误,例如,
.metadata.json
文件名被省略了。现在已修复(可以确认)。