Pruebe el positional $
operador en su actualización que actúa como un marcador de posición para el primer elemento que coincide con el documento de consulta, y cuando lo use, asegúrese de que las cards
El campo de matriz debe aparecer como parte del documento de consulta. En su caso, le gustaría agregar una card
documento en las 'cards'
matriz, pero solo si el cardId
no existe:
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) { ... });