被索引的未设置字段:E11000 重复键错误集合
Posted
技术标签:
【中文标题】被索引的未设置字段:E11000 重复键错误集合【英文标题】:unset field that is indexed makes : E11000 duplicate key error collection 【发布时间】:2020-01-21 09:49:09 【问题描述】:我有索引为“phone”的表“users” 当我尝试取消设置索引的字段时,第一次正确取消设置,并且此查询返回现在没有字段“电话”的用户
db.getCollection('users').find("phone":null)
但是当我尝试取消设置另一个用户的外地电话时,我收到了这个错误:
MongoError: E11000 duplicate key error collection: fflok.users index: phone_1 dup key: : null
请帮忙
这是未设置字段的查询
User.updateOne( _id: userId , $unset: phone: 1 , callback);
【问题讨论】:
【参考方案1】:试试这个代码。它会帮助你。
User.update(
_id: userId ,
$unset: phone: ""
)
【讨论】:
实际情况是什么?一旦您取消设置该字段就不能再次设置,或者您不能多次使用取消设置? @user2285831【参考方案2】:我在架构中尝试了这段代码:
phone: type: String, trim: true, index: true, unique: true, sparse: true,
在数据库上,我在索引上选择了稀疏:
【讨论】:
以上是关于被索引的未设置字段:E11000 重复键错误集合的主要内容,如果未能解决你的问题,请参考以下文章
MongoError:E11000 重复键错误集合:myFirstDatabase.tours 索引:rating_1 重复键: rating:null
MongoError:E11000 重复键错误集合:workflow.compnies 索引:username_1 dup key: username:null