未设置索引的字段使得:E11000 重复键错误集合

unset field that is indexed makes : E11000 duplicate key error collection

我有 table "users",索引为 "phone" 当我尝试取消设置索引的字段时,第一次正确取消设置,并且此查询 return 现在没有字段的用户 "phone"

db.getCollection('users').find({"phone":null})

但是当我尝试取消设置另一个用户的字段时 phone 我收到此错误:

MongoError: E11000 duplicate key error collection: fflok.users index: phone_1 dup key: { : null }

请帮忙

这是未设置字段的查询

User.updateOne({ _id: userId }, {$unset: {phone: 1 }}, callback);

试试这个代码。它会帮助你。

User.update(
   { _id: userId },
   { $unset: { phone: ""} }
)

我在架构中尝试了这段代码:

 phone: {type: String, trim: true, index: true, unique: true, sparse: true},

在数据库中,我在索引上选择了稀疏: