तो आप वहां के रास्ते का हिस्सा हैं, लेकिन निश्चित रूप से जब आपको कोई doc
नहीं मिलता है तो आपके पास doc
नहीं होगा कॉलबैक में साथ काम करने के लिए। MongoDB के पास इस प्रकार के अपडेट को संभालने के मूल तरीके हैं, लेकिन निश्चित रूप से आपको मैच के लिए परीक्षण करने की आवश्यकता है जैसे आप हैं।
हम यहां क्या कर सकते हैं true
. के भीतर ही काम करते हैं या false
दस्तावेज़ मौजूद होने की स्थिति।
vote.value
को ध्यान में रखते हुए अपने true
होने के लिए या false
"अपवोट" के लिए
जहां आप पाते हैं कि एक मेल खाने वाला दस्तावेज़ है, आप इस तरह से एक अपडेट जारी कर सकते हैं:
Question.update(
{
_id: questionId,
"votes.createdBy" vote.createdBy,
"votes.up": {"$ne": vote.value }
},
{ $set: { "votes.$.up": vote.value } }
);
ताकि एक positional
से मेल खाता हो और उसका उपयोग करता हो $
सही इंडेक्स . सुनिश्चित करने के लिए ऑपरेटर मिलान करने वाले आइटम का अद्यतन किया जाता है। मैंने वहां जो जोड़ा है वह यह सुनिश्चित करता है कि आप उस दस्तावेज़ को स्पर्श भी न करें जहां vote.vaule
पहले से ही समान मूल्य का है।
और झूठी स्थिति में आप $push करना चाहते हैं नए . के साथ सरणी पर आइटम:
Question.update(
{
_id: questionId
},
{
$push: {
"votes": {
"up": vote.value,
"createdBy": vote.createdBy
}
}
}
);
बेशक कॉलबैक विवरण जोड़ें जहां writeConcern
लागू होता है, जो आप शायद करते हैं।