web-dev-qa-db-ja.com

mongorestoreを使用してインデックスを復元できませんでした-MongoDB

注:私はすでに--noIndexRestoreについて知っています

次のドキュメント構造を持つ組織コレクションがあります。

{
    "_id" : ObjectId("5cc2bf9f5ca45131b8f8e427"),
    "name" : "National",
    "parent" : "null",
    "level" : 1,
    "label" : "National",
    "identifier" : "Default",
    "client_id" : ObjectId("5af3178c141292374cbf363e")
}

次のフィールドにインデックスを作成しました。

  1. 名前
  2. レベル
  3. 識別子
  4. クライアントID

インデックスをチェックすると

db.org.getIndexes();

結果:

/* 1 */
{
    "v" : 2,
    "key" : {
        "_id" : 1
    },
    "name" : "_id_",
    "ns" : "testdbname.org"
},

/* 2 */
{
    "v" : 2,
    "key" : {
        "name" : 1
    },
    "name" : "name_1",
    "ns" : "testdbname.org"
},

/* 3 */
{
    "v" : 2,
    "key" : {
        "parent" : 1
    },
    "name" : "parent_1",
    "ns" : "testdbname.org"
},

/* 4 */
{
    "v" : 2,
    "key" : {
        "level" : 1
    },
    "name" : "level_1",
    "ns" : "testdbname.org"
},

/* 5 */
{
    "v" : 2,
    "key" : {
        "identifier" : 1
    },
    "name" : "identifier_1",
    "ns" : "testdbname.org"
},

/* 6 */
{
    "v" : 2,
    "key" : {
        "client_id" : 1
    },
    "name" : "client_id_1",
    "ns" : "testdbname.org"
}

上記のインデックスはすべて私には問題なく見えます。しかし、サーバーでバックアップを取り、それを別の場所に復元すると、組織コレクションの復元中に次のエラーが発生します。

reading metadata for testdbname.org from archive 'testdbname_05-10-2019_00%3A55%3A31.archive'
2019-10-05T10:20:40.979+0500    restoring testdbname.org from archive 'testdbname_05-10-2019_00%3A55%3A31.archive'
2019-10-05T10:20:41.226+0500    reading metadata for testdbname.questionbank from archive 'testdbname_05-10-2019_00%3A55%3A31.archive'
2019-10-05T10:20:41.237+0500    restoring indexes for collection testdbname.org from metadata
2019-10-05T10:20:41.240+0500    Failed: testdbname.org: error creating indexes for testdbname.org: createIndex error: Values in v:2 index key pattern cannot be of type object. Only numbers > 0, numbers < 0, and strings are allowed.
2
Abdul Moiz

問題が将来ここに来る人々のために、私はローカルでMongoDB 4.0を使用していて、サーバーは4.2でした:

バージョン4.2から、mongodumpはメタデータファイルに拡張JSON v2.0(正規)形式を使用します。これらのファイルを復元のために解析するには、拡張JSON v2.0(CanonicalまたはRelaxedモード)形式をサポートするmongorestoreバージョン4.2以降を使用します。詳細については、この「メタデータ形式」セクションを参照してください。 docs.mongodb.com/manual/reference/program/mongodump

2
Abdul Moiz