$ unset是空的。 您必须像这样指定一个字段:{$ unset:{<field>:…}}
mongodb版本3.0.1
mongoose版本4.0.3
我正在尝试这样做:
groupsModel.updateQ({_id:group._id},{ $unset:{"moderators":""}, $set:{"admins":newAdmins} })
从catch
说明我得到一个MongoError
'\'$unset\' is empty. You must specify a field like so: {$unset: {<field>: ...}}'
但它不是空的。
moderators
,但是,不在架构,这就是为什么我想要删除它。
我无法重现该错误消息,但正如您所见,Mongoose只会更新模式中定义的字段。 但是,您可以通过包含strict: false
选项来覆盖该默认行为:
groupsModel.update( {_id: group._id}, {$unset: {"moderators": ""}, $set:{"admins": newAdmins}}, {strict: false} )