Mongodb mongorestore metadata.json文件
我有一个来自MongoDB转储的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
.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
文件名被省略了。现在已修复(可以确认)。