Опитайте positional $
оператор във вашата актуализация, който действа като контейнер за първия елемент, който съответства на документа на заявката, и когато го използвате, се уверете, че cards
полето за масив трябва да се появи като част от документа на заявката. Във вашия случай бихте искали да добавите card
документ в 'cards'
масив, но само ако cardId
не съществува:
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) { ... });