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

Sintaxis de $pull de MongoDB

Su "segunda matriz" tiene una estructura de elementos anidados, por lo que debe identificar el elemento externo que desea hacer coincidir en su consulta cuando usa un $ posicional operador en la actualización. Básicamente necesitas algo como esto:

bulk.find({ 
    "_id": new mongo.ObjectID(req.session._id), 
    "secondArray._id": "7423" 
}).update({
    "$pull": { 
        "firstArray": { "_id": "153" },
        "secondArray.$.firstArrayIds": 153
    }
});

Entonces, de hecho, hay "dos" valores de identificación que debe pasar con su solicitud además de la identificación general del documento. Aunque esto está anidado, está bien ya que solo está haciendo coincidir en el nivel "externo" y solo en una matriz. Si intentó hacer coincidir la posición en más de una matriz, esto no es posible con el operador posicional.