MongoDB索引实战

来源:luqidong 发布时间:2014-01-19 19:06:06 点击数:

1、索引的类型

MongoDB中的所有索引底层都使用相同的数据结构,但可以有很多种不同的属性。尤其是唯一索引稀疏索引和多键索引,他们都很常用。

唯一索引

要创建唯一索引,设置unique选型即可

db.users.ensuerIndex({username:1},{unique:true});

唯一性索引保证了集合中所有索引项的唯一性如果要插入一个用户名已经贝索引过的索引那么就会提示失败抛出一场:

E1100 duplicate key error index:

  gardening.users.$username_1 dup key{:kbanker}

如果使用驱动,那么只有在使用驱动的安全模式执行插入时候才会捕获一场。如果集合上需要唯一索引,通常在插入数据前创建索引会比较好,提前创建索引,能在一开始就保证唯一约束性,在已经包含数据的集合上创建唯一索引时,会有失败的风险因为即合理可能已经存在重复的键了,存在重复的键时,创建索引会失败。

如果真的有需要在一个已经建好的集合上创建唯一索引,你有几个选择,首先不停地重复创建唯一索引根据失败信息手动删除包含重复键的文档。如果数据不重要,还可以通过dropDups选项告诉数据库自动上喊出包含重复键的文档。举个例子,如果用户集合users萝莉已经有数据库了,而你并不介意删除包涵重复的文档,可以想下面这样发起索引创建命令:

db.users.ensureIndex({username:1},{unique:true,dropDups:true});

本文由www.78oa.com原创