sql >> Database >  >> NoSQL >> MongoDB

Hoe een update-query in mongodb te schrijven voor diep geneste array?

Probeer de positional $ operator in uw update die fungeert als een tijdelijke aanduiding voor het eerste element dat overeenkomt met het querydocument, en wanneer u het gebruikt, zorg er dan voor dat de cards matrixveld moet verschijnen als onderdeel van het querydocument. In jouw geval wil je een card . toevoegen document in de 'cards' array, maar alleen als de cardId bestaat niet:

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. Zijn er goede databasebeheer-apps voor Mac voor MongoDB? gelijk aan Sequel Pro?

  2. Correcte manier om een ​​verzameling te sharden en hoe de resultaten te interpreteren

  3. MongoDB:Hoe het op één na hoogste salaris te vinden bij het verzamelen?

  4. Zoeken naar object in Mongoose Sub Array