MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Sintaxe $ pull do MongoDB


Seu "secondArray" tem uma estrutura de elemento aninhada, portanto, você deve identificar o elemento externo que deseja corresponder em sua consulta ao usar um $ posicional operador na atualização. Você basicamente precisa de algo assim:
bulk.find({ 
    "_id": new mongo.ObjectID(req.session._id), 
    "secondArray._id": "7423" 
}).update({
    "$pull": { 
        "firstArray": { "_id": "153" },
        "secondArray.$.firstArrayIds": 153
    }
});

Portanto, existem, de fato, "dois" valores de id que você precisa passar com sua solicitação, além do id geral do documento. Mesmo que isso esteja aninhado, tudo bem, pois você está correspondendo apenas no nível "externo" e apenas em uma matriz. Se você tentou combinar a posição em mais de uma matriz, isso não é possível com o operador posicional.