Mongodb-在现有集合上添加唯一索引

时间:2014-07-22 04:19:04

标签: mongodb

我正在尝试学习Mongodb中的索引。我创建了一个数据库和一个集合,如下所示:

use mydb
db.createCollection("myFirstCollection")
one={name:"Helios"}
two={name:"Kepler"}
db.myFirstCollection.insert(one)
db.myFirstCollection.insert(two)

我能够按如下方式列出我的结果:

db.myFirstCollection.find()
{ "_id" : ObjectId("53cde256f8807057b6bd827b"), "name" : "Helios" }
{ "_id" : ObjectId("53cde25bf8807057b6bd827c"), "name" : "kepler" }

我想在字段name上添加唯一索引。但是当我尝试时,出现以下错误

db.myFirstCollection.ensureIndex({name:1},{unique:true})

{
        "createdCollectionAutomatically" : false,
        "numIndexesBefore" : 1,
        "ok" : 0,
        "errmsg" : "E11000 duplicate key error index: mydb.myFirstCollection.$name_1  dup key: { : null }",
        "code" : 11000
}

我无法弄清楚我正在犯的错误。请帮忙。

2 个答案:

答案 0 :(得分:0)

对于其他有问题的人,请注意字段名称区分大小写。

因此,在{field1 : 1}上创建索引与{Field1 : 1}

不同

答案 1 :(得分:0)

请在此处查看缺少的字段部分: https://docs.mongodb.com/manual/core/index-unique/

您只能拥有一个不包含集合中存在的唯一索引的文档。