2015-06-02 23 views
5

mongodb Version 3.0.1
Mungo Version 4.0.3

Ich versuche, dies zu tun:

groupsModel.updateQ({_id:group._id},{ 
    $unset:{"moderators":""}, 
    $set:{"admins":newAdmins} 
}) 

Und ich bin immer einen MongoError vom catch Angabe

'\'$unset\' is empty. You must specify a field like so: {$unset: {<field>: ...}}'

Aber es ist nicht leer.

moderators ist jedoch nicht im Schema, weshalb ich versuche, es zu entfernen.

Antwort

12

Ich konnte diese Fehlermeldung nicht reproduzieren, aber wie Sie gesehen haben, aktualisiert Mungoose nur die im Schema definierten Felder. Sie können jedoch, dass Standardverhalten außer Kraft setzen, indem die strict: false Option:

groupsModel.update(
    {_id: group._id}, 
    {$unset: {"moderators": ""}, $set:{"admins": newAdmins}}, 
    {strict: false} 
) 
+0

Haben den gleichen Fehler, dachte ich, es war zu verlieren, bis ich das Feld realisiert war nicht in meinem Schema. –

+0

Danke, ich hatte das gleiche Problem. Habe nicht bemerkt, dass ich 2 verschiedene Namen im Schema und in der Update-Methode verwende. –