positional $
आज़माएं
आपके अपडेट में ऑपरेटर जो क्वेरी दस्तावेज़ से मेल खाने वाले पहले तत्व के लिए प्लेसहोल्डर के रूप में कार्य करता है, और जब आप इसका उपयोग करते हैं तो सुनिश्चित करें कि cards
सरणी फ़ील्ड को क्वेरी दस्तावेज़ के भाग के रूप में प्रकट होना चाहिए। आपके मामले में आप एक cards
जोड़ना चाहेंगे '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) { ... });