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

Jak napsat aktualizační dotaz v mongodb pro hluboce vnořené pole?

Vyzkoušejte positional $ operátor ve vaší aktualizaci, který funguje jako zástupný symbol pro první prvek, který odpovídá dokumentu dotazu, a když jej používáte, ujistěte se, že cards pole pole se musí objevit jako součást dokumentu dotazu. Ve vašem případě byste chtěli přidat card dokument do 'cards' pole, ale pouze pokud cardId neexistuje:

var query = {        
    "cardInfo.cards.cardId": { "$nin": ["somecardid"] }
};
var update = {        
    "$push": {
        "cardInfo": { "customerId": "25934285649875" },
        "cardInfo.$.cards": {
            cardId: "somecardid",
            cardType: "type",
            createdAt: new Date().toISOString(),
            isActive: true
        }
    }
};

Customer.update(query, update, function (err, result) { ... }); 



  1. MongoDB - odstranění nenumerických znaků v poli

  2. Proč mongodump nezálohuje indexy?

  3. Referenční chyba není vyvolána zpětným voláním MongoDB

  4. 3 způsoby, jak vybrat řádek s minimální hodnotou v SQL