MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So entfernen Sie ein Dokument in einem Array in Mongodb mit $pull

Sie können dies mit dem Positionsoperator "$[]" tun:

db.getCollection('workflows').update({_id: ObjectId("5ffef283f1f06ff8524aa2c2")  }, {$pull: {"workflows.$[]":{pName:"Test1"  } }  } )

aber das Schema sieht etwas seltsam aus und nach dem Update haben Sie leere Arrays in Workflows, wenn alle Elemente im Sub-Array gelöscht wurden. Um die leeren Sub-Arrays zu reparieren, müssen Sie eine zweite Operation durchführen, um sie zu entfernen:

db.getCollection('workflows').update({_id: ObjectId("5ffef283f1f06ff8524aa2c2")  }, {$pull: {"workflows":[]  } }   )