【问题标题】:Change a unique index to a sparse unique index in mongo db?在mongodb中将唯一索引更改为稀疏唯一索引?
【发布时间】:2015-02-15 15:06:06
【问题描述】:

如果我有一个在这样的字段上具有唯一索引的集合:

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

我怎样才能改变它以使索引是唯一的稀疏的?运行以下似乎不会更新索引:

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

【问题讨论】:

    标签: mongodb indexing unique-constraint sparse-matrix


    【解决方案1】:

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

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

    取自 mongodb 文档:

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

    【讨论】:

    • 啊,那好吧。在这种情况下这有点愚蠢,因为添加稀疏减少了约束 - 不需要重建索引。哦,好吧..
    猜你喜欢
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多