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

MongoDB $pull syntaks

Din "secondArray" har en indlejret elementstruktur, så du skal identificere det ydre element, du vil matche i din forespørgsel, når du bruger en positionel $ operatør i opdateringen. Du har grundlæggende brug for noget som dette:

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

Så der er faktisk "to" id-værdier, du skal sende med din anmodning ud over det generelle dokument-id. Selvom dette er indlejret, er det okay, da du kun matcher på det "ydre" niveau og kun på et array. Hvis du forsøgte at matche positionen på mere end et array, er dette ikke muligt med positionsoperatoren.




  1. nodejs mongodb driver afbryder forbindelsen, når den er inaktiv

  2. Hvordan opretter man forbindelse til en Docker Redis-klyngeinstans ved hjælp af jedis til Java?

  3. Mongodb skemadefinering

  4. I Mongodb, hvordan kan jeg kun indeksere felt(er) i samling(er) i sekundær node (replika-sæt)