mongodb - mongorestore metadata.json 文件

标签 mongodb mongodump mongorestore

我有一个来自 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

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

关于mongodb - mongorestore metadata.json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35245174/

相关文章:

mongodb - 如何聚合包含 id 的数组?

mongodb - 使用 $elemMatch 时如何检索所有字段?

mongodb - 使用 mongodump 和 mongorestore 后数据丢失?

linux - Mongorestore:createIndex 错误:v:2 索引键模式中的值不能是对象类型。只允许数字 > 0、数字 < 0 和字符串

mongodb - 为什么 mongorestore 恢复索引?

mongodb - Mongo 是否适合临时存储(大量对象创建和删除)?

java - $inc 运算符和 java 驱动程序的问题

json - 从 mongodump 获取 JSON 文件

mongodb - 将 mongodump 或 mongorestore 命令输出打印到日志文件