sql >> Database >  >> NoSQL >> MongoDB

MongoDB $pull-syntaxis

Uw "secondArray" heeft een geneste elementstructuur, dus u moet het buitenste element identificeren dat u wilt matchen in uw zoekopdracht wanneer u een positionele $ gebruikt operator in de update. Je hebt eigenlijk zoiets als dit nodig:

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

Er zijn dus in feite "twee" id-waarden die u naast de algemene document-id bij uw verzoek moet opgeven. Ook al is dit genest, het is oké, omdat je alleen op het "buitenste" niveau en slechts op één array overeenkomt. Als u heeft geprobeerd de positie op meer dan één array te matchen, is dit niet mogelijk met de positionele operator.




  1. Hoe u uw open source-databases kunt beveiligen met ClusterControl

  2. Hoe Mongodb op Apple M1-chip te installeren

  3. MongoDB:Hoe geneste arrays in één document groeperen?

  4. plukken versus onderscheiden in mongoïde db. welke is sneller?