我的集合中有一个名为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
}
]
Run Code Online (Sandbox Code Playgroud)
我试图以这种方式放弃这个索引
db.people.dropIndex({"personname_1_email_1_sex_1_course_1": 1})
Run Code Online (Sandbox Code Playgroud)
但我收到错误消息
{"errmsg":"找不到索引","ok":0}
我还尝试按名称删除索引
db.people.dropIndex( { "name" : "personname_1_email_1_sex_1_course_1" } )
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用下面的命令一次性删除集合上的索引
db.people.dropIndexes()
Run Code Online (Sandbox Code Playgroud)
请让我知道如何解决这个问题?
Joh*_*yHK 14
将索引名称传递dropIndex
给它而不将其放入对象:
db.people.dropIndex("personname_1_email_1_sex_1_course_1")
Run Code Online (Sandbox Code Playgroud)
只是为了做出完整的答案.
从技术文档: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})
Run Code Online (Sandbox Code Playgroud)
工作良好.
归档时间: |
|
查看次数: |
4429 次 |
最近记录: |