下面是MongoDB中唯一索引的详细讲解和示例说明:
在MongoDB中,唯一索引是指制定了某些字段为唯一索引,这些字段的值必须是唯一的.MongoDB中唯一索引可以保证数据的唯一性和完整性,类似于关系型数据库中的唯一约束.
MongoDB中唯一索引的创建方式和其他索引相同,可以在MongoDB的shell中使用ensureIndex()或createIndex()方法进行创建.在创建索引时,可以使用{unique:true}属性指定该索引为唯一索引.
db.collection.ensureIndex({field:1},{unique:true})
db.collection.createIndex({field:1},{unique:true})
下面给出两个示例,分别是创建和使用MongoDB中唯一索引的演示.
use testdb
db.person.insert([
{
"phone": "987654321"
}
])
db.person.ensureIndex({"phone":1},{unique:true})
或
db.person.createIndex({"phone":1},{unique:true})
通过以上命令,我们创建了phone字段的唯一索引.MongoDB会遍历所有数据,以确保创建唯一索引后,该字段中不会出现重复值.
在MongoDB中,由于唯一索引的存在,插入重复数据将会失败.下面我们尝试插入一条重复数据.
db.person.insert({
"name": "John",
"age": 35,
"phone": "123456789"
})
插入重复数据后,MongoDB会提示错误信息.
WriteError: E11000 duplicate key error collection: testdb.person index: phone_1 dup key: { phone: "123456789" } :
db.person.insert({
"name": "John",
"age": 35,
"phone": "987654321"
})
因为phone字段是唯一索引,尝试插入重复数据时失败,插入不重复数据时成功.
好了,全部的MongoDB中唯一索引的讲解和示例.