sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur skriver man uppdateringsfråga i mongodb för djupt kapslad array?

Prova positional $ operatorn i din uppdatering som fungerar som en platshållare för det första elementet som matchar frågedokumentet, och när du använder det se till att cards arrayfältet måste visas som en del av frågedokumentet. I ditt fall vill du lägga till ett card dokument till 'cards' array, men bara om cardId finns inte:

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. Arbeta med specialtecken i en Mongo-samling

  2. sql "gilla"-operationer på siffror i mongodb

  3. PyMongo och toArray()-metoden

  4. Det går inte att skicka data till MongoDB med Kafka-Spark Structured Streaming