私が使用した手順:
mongodump
mongorestore
myDumpFolderインデックスが失われていることに気づき、_id
はmongorestore
の後に新しい値があります。
誰でも、インデックスとmongodb_idの両方を復元した復元体験を共有できますか?
誰でも、インデックスとmongodb_idの両方を復元した復元体験を共有できますか?
MongoDBのドキュメントに従って ここ デフォルトでは、 mongorestore は、dump /ディレクトリでデータベースバックアップを探します。
バージョン3.6の新機能:
すべてのMongoDBコレクションには、デフォルトでUUIDがあります。 MongoDBがコレクションを復元すると、復元されたコレクションは元のUUIDを保持します。 UUIDが存在しないコレクションを復元すると、MongoDBは復元されたコレクションのUUIDを生成します。
UUID()の構文は次のとおりです。
UUID(<string>)
Parameter Type Description
hex string
Optional. Specify a 36 character string to convert to a UUID BSON object. If not provided, MongoDB generates a random UUID in RFC 4122 v4 format.
Changed in version 3.6: In earlier versions of the mongo Shell, UUID required a hexadecimal string argument. See the 3.4 manual.
A BSON UUID object
を返します。
インデックスが失われ、_idにmongorestoreの後に新しい値が含まれていることに気付きました。
@ Will、JJussiは既にmongorestoreがmongodumpが記録したすべてのインデックスを再作成する必要があると述べました。
例
C:\data\dump
フォルダにmongodumpがあります。データベースフォルダーが含まれる100YWeatherSmall
、citibike
、city
、ships
、video
と(.bson&.json)ファイル。これらのデータベースは、MongoDB 3.6ですでに復元されています。
ここでも、MongoDB 3.6のこれらのデータベースダンプファイルにmongorestoreを実行します。
ご覧のとおり、すべてのデータベースはすでにMongoDBにあります。
注:ここでは、セキュリティ上の理由から、いくつかのデータベース名を強調表示しています。
ここでは、以下のコマンドでmongorestoreを実行します。
C:\Program Files\MongoDB\Server\3.6\bin>mongorestore --verbose C:\data\dump
注:mongorestoreは、mongoシェルではなく、システムコマンドラインから実行します。
video.movies
データベースダンプリストアレポートステータス
- E11000 duplicate key error collection: video.movies index: _id_ dup key: { : ObjectId('58c59c6b99d4ee0af9e0eef0') }
- E11000 duplicate key error collection: video.movies index: _id_ dup key: { : ObjectId('58c59c6b99d4ee0af9e0eef1') }
- E11000 duplicate key error collection: video.movies index: _id_ dup key: { : ObjectId('58c59c6b99d4ee0af9e0eef2') }
- E11000 duplicate key error collection: video.movies index: _id_ dup key: { : ObjectId('58c59c6b99d4ee0af9e0eef3') }
- E11000 duplicate key error collection: video.movies index: _id_ dup key: { : ObjectId('58c59c6b99d4ee0af9e0eef4') }
100YWeatherSmall.data
データベースダンプリストアレポートステータス
- E11000 duplicate key error collection: 100YWeatherSmall.data index: _id_ dup key: { : ObjectId('5553a98ee4b02cf7150e1cc8') }
- E11000 duplicate key error collection: 100YWeatherSmall.data index: _id_ dup key: { : ObjectId('5553a98ee4b02cf7150e1cca') }
- E11000 duplicate key error collection: 100YWeatherSmall.data index: _id_ dup key: { : ObjectId('5553a98ee4b02cf7150e1ccc') }
- E11000 duplicate key error collection: 100YWeatherSmall.data index: _id_ dup key: { : ObjectId('5553a98ee4b02cf7150e1ccd') }
- E11000 duplicate key error collection: 100YWeatherSmall.data index: _id_ dup key: { : ObjectId('5553a98ee4b02cf7150e1cd0') }
citibike.trips
データベースダンプリストアレポートステータス
- E11000 duplicate key error collection: citibike.trips index: _id_ dup key: { : ObjectId('572bb8232b288919b68b258e') }
- E11000 duplicate key error collection: citibike.trips index: _id_ dup key: { : ObjectId('572bb8232b288919b68b25ad') }
- E11000 duplicate key error collection: citibike.trips index: _id_ dup key: { : ObjectId('572bb8232b288919b68b2608') }
- E11000 duplicate key error collection: citibike.trips index: _id_ dup key: { : ObjectId('572bb8232b288919b68b26c5') }
- E11000 duplicate key error collection: citibike.trips index: _id_ dup key: { : ObjectId('572bb8232b288919b68b26da') }
index: id であるため、mongorestore
の実行中はすべてindex: _id_ dup key:
が表示されていることがわかります。は既にそのデータベースとコレクションに存在しています。
つまり、mongodumpが作成したインデックス: id &ObjectIdは同じインデックス: id &ObjectIdはMongoDBの同じmongorestoreです。
ここで、以下のレポートはcitibike.trips mongorestoreの完全なmongodump復元レポートです。
2018-05-30T10:56:31.962+0300 [########################] citibike.trips 835MB/835MB (100.0%)
2018-05-30T10:56:31.962+0300 restoring indexes for collection citibike.trips from metadata
2018-05-30T10:56:32.106+0300 finished restoring citibike.trips (1990273 documents)
2018-05-30T10:56:32.126+0300 done
たとえば、ここではcitibite.tripsが完全なレポートを復元することだけを述べました。メッセージはメタデータからのコレクションcitibike.tripsのインデックスの復元を示しています。
したがって、上記の結論に従って、mongorestore
はObjectId
が作成した同じindex:_id_
&mongodump
を格納すると言えます。