Essayez le positional $
opérateur dans votre mise à jour qui agit comme un espace réservé pour le premier élément qui correspond au document de requête, et lorsque vous l'utilisez, assurez-vous que les cards
Le champ de tableau doit apparaître dans le cadre du document de requête. Dans votre cas, vous voudriez ajouter une card
document dans les 'cards'
tableau, mais seulement si le cardId
n'existe pas :
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) { ... });