sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo eliminar un documento dentro de una matriz en mongodb usando $pull

Puedes hacerlo usando el operador posicional "$[]" :

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

pero el esquema se ve un poco extraño y después de la actualización, tendrá matrices vacías dentro de los flujos de trabajo si todos los elementos se eliminaron en la matriz secundaria. Para corregir las matrices secundarias vacías, deberá realizar una segunda operación para eliminarlas:

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