sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB $pull-syntax

Din "secondArray" har en kapslad elementstruktur, så du måste identifiera det yttre elementet du vill matcha i din fråga när du använder en positionell $ operatör i uppdateringen. Du behöver i princip något sånt här:

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

Så det finns faktiskt "två" id-värden du behöver skicka in med din förfrågan utöver det allmänna dokument-id:t. Även om detta är kapslat är det okej eftersom du bara matchar på den "yttre" nivån och bara på en array. Om du försökte matcha positionen på mer än en array är detta inte möjligt med positionsoperatorn.




  1. MongoDB toArray-prestanda

  2. Hur får man längden på en markör från mongodb med python?

  3. Var ska jag lägga till --rest-alternativet för MongoDB?

  4. stöder mongoose virtuella fält i utvalda som SQL