sql >> Databáze >  >> NoSQL >> MongoDB

Syntaxe MongoDB $pull

Vaše "secondArray" má strukturu vnořených prvků, takže při použití pozičního $ musíte ve svém dotazu identifikovat vnější prvek, který chcete porovnat. operátora v aktualizaci. V podstatě potřebujete něco takového:

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

Takže ve skutečnosti existují „dvě“ hodnoty id, které musíte předat se svou žádostí kromě obecného ID dokumentu. I když je to vnořené, je to v pořádku, protože párujete pouze na "vnější" úrovni a pouze na jednom poli. Pokud jste se pokusili porovnat pozici na více než jednom poli, pak to s pozičním operátorem není možné.




  1. Jak odstranit dokument uvnitř pole v mongodb pomocí $pull

  2. jak používat agregační funkci v meteoru

  3. MongoDB $group a explicitní formace skupiny s vypočítaným sloupcem

  4. Jak mohu zlepšit hromadný výkon MongoDB?