大きなMongoDBデータベースでmongorestore
コマンドを実行すると、次のエラーが表示されます。
バックアップが行われたマシン:
db version v4.2.0
git version: a4b751dcf51dd249c5865812b390cfd1c0129c30
OpenSSL version: OpenSSL 1.1.1 11 Sep 2018
allocator: tcmalloc
modules: none
build environment:
distmod: ubuntu1804
distarch: x86_64
target_Arch: x86_64
ローカルマシンのバージョン(ここでmongorestore
を実行します)
db version v4.0.10
git version: c389e7f69f637f7a1ac3cc9fae843b635f20b766
allocator: system
modules: none
build environment:
distarch: x86_64
target_Arch: x86_64
失敗:prod.DeviceState:prod.DeviceState:createIndexエラーのインデックスの作成エラー:v:2インデックスキーパターンの値はオブジェクトタイプにできません。数値> 0、数値<0、および文字列のみが許可されます。
この問題を解決するための助けはありますか?
ありがとうございました
バージョン4.2以降、mongodumpは拡張JSON v2.0(正規)形式をメタデータファイルに使用します。これらのファイルを復元のために解析するには、拡張JSON v2.0(CanonicalまたはRelaxedモード)形式をサポートするmongorestoreバージョン4.2以降を使用します。
ヒント
一般的な場合は、mongodumpとmongorestoreの対応するバージョンを使用してください。つまり、mongodumpの特定のバージョンで作成されたデータファイルを復元するには、対応するバージョンのmongorestoreを使用します。
https://docs.mongodb.com/manual/reference/program/mongodump/#metadata-format
したがって、v4.2.0
を指定してmongorestoreを実行する必要があります
または、これを試してください(MongoDBバックアップを保持)
その他のトリック:
mongodumpは、メタデータファイルに拡張JSON v2.0(正規)形式を使用します
metadata files .json
dump v4.2.0をv4.0.10に置き換えます