MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come rimuovere un documento all'interno di un array in mongodb usando $pull

Puoi farlo usando l'operatore posizionale "$[]" :

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

ma lo schema sembra un po' strano e dopo l'aggiornamento avrai array vuoti all'interno dei flussi di lavoro se tutti gli elementi sono stati eliminati nel sottoarray. Per correggere i sottoarray vuoti dovrai eseguire una seconda operazione per rimuoverli:

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