将唯一索引更改为mongodb中的稀疏唯一索引?

时间:2014-12-17 06:05:12

标签: mongodb indexing unique-constraint sparse-matrix

如果我的集合在字段上具有唯一索引,请执行以下操作:

collection.User.ensureIndex({username:1}, {unique: true})

如何更改它以使索引唯一稀疏?运行以下似乎并没有更新索引:

collection.User.ensureIndex({username:1}, {unique: true, sparse:true})

1 个答案:

答案 0 :(得分:1)

如果索引尚不存在,

ensureIndex会在指定字段上创建索引。如果要更改索引,则必须先删除索引,然后再使用新选项再次调用ensureIndex

collection.User.dropIndex("username_1");
collection.User.ensureIndex({username:1}, {unique: true, sparse:true})

取自mongodb文件:

  

要添加或更改索引选项,必须使用dropIndex()方法删除索引,并使用新选项发出另一个ensureIndex()操作。