5

以下に示すように、コレクションにpeopleという複合インデックスがあります

 db.people.getIndexes()
[
        {
                "name" : "_id_",
                "ns" : "at.people",
                "key" : {
                        "_id" : 1
                }
        },
        {
                "_id" : ObjectId("521dd652a185d3defe301983"),
                "ns" : "at.people",
                "key" : {
                        "personname" : 1,
                        "email" : 1,
                        "sex" : 1,
                        "course" : 1
                },
                "name" : "personname_1_email_1_sex_1_course_1",
                "unique" : false
        }
]

このインデックスをこの方法で削除しようとしています

 db.people.dropIndex({"personname_1_email_1_sex_1_course_1": 1})

しかし、エラーメッセージが表示されます

{ "errmsg": "インデックスが見つかりません", "ok": 0 }

私も名前でインデックスを削除しようとしました

db.people.dropIndex( { "name" : "personname_1_email_1_sex_1_course_1" } )

以下のコマンドを使用して、コレクションのインデックスをワンショットで削除できることを知っています

db.people.dropIndexes()

これを解決する方法を教えてください。

4

4 に答える 4

6

完全な答えを出すだけです。

ドキュメントから: http://docs.mongodb.org/manual/reference/method/db.collection.dropIndex/db.collection.dropIndex()で使用する必要がありますstring or document:

削除するインデックスを指定します。インデックスは、インデックス名またはインデックス仕様ドキュメントで指定できます。

したがって、両方:

db.people.dropIndex("personname_1_email_1_sex_1_course_1")
db.people.dropIndex({personname:1,email:1,sex:1,course:1})

正常に動作します。

于 2013-09-06T12:43:14.523 に答える