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

Hvordan skriver man opdateringsforespørgsel i mongodb til dybt indlejret array?

Prøv positional $ operator i din opdatering, som fungerer som en pladsholder for det første element, der matcher forespørgselsdokumentet, og når du bruger det, skal du sørge for, at cards matrixfeltet skal vises som en del af forespørgselsdokumentet. I dit tilfælde vil du gerne tilføje et card dokument i 'cards' array, men kun hvis cardId eksisterer ikke:

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. Læs BSON (mongoDB) ind i POJO ved hjælp af GSON og TypeAdapter

  2. MongoDB $binarySize

  3. Mongodb simpel præfiks-forespørgsel med regex og sortering er langsom

  4. Gruppér og tæl efter måned