अपने दस्तावेज़ में डिफ़ॉल्ट जोड़ने के लिए यदि इसे findOneAndUpdate
. के साथ बनाया गया था (यह क्वेरी से पहले मौजूद नहीं था) और आपने उस अपडेट में फ़ील्ड प्रदान नहीं किया है जिसका आपको उपयोग करना चाहिए setDefaultsOnInsert
।
जब upsert
और setDefaultsOnInsert
दोनों true
हैं , यदि रिकॉर्ड नहीं मिलता है और एक नया बनाया जाता है, तो डिफ़ॉल्ट सेट हो जाएंगे। यह यह जांचने के वर्कफ़्लो को छोड़ देता है कि रिकॉर्ड मौजूद है या नहीं और यदि नहीं तो 'सहेजें' के साथ एक नया बनाना केवल यह सुनिश्चित करने के लिए कि डिफ़ॉल्ट सेट हैं ।
मेरे पास एक ही समस्या है (findOneAndUpdate
के साथ बनाया गया रिकॉर्ड upsert: true
) और किसी फ़ील्ड के लिए डिफ़ॉल्ट मान रिकॉर्ड में नहीं जोड़ा गया था, भले ही वह स्कीमा में था। यह केवल findOneAndUpdate
का उपयोग करते समय डिफ़ॉल्ट जोड़ने के संबंध में है दस्तावेज़ बनाने के लिए, 'बनाए गए' फ़ील्ड के अपडेट को छोड़ने के लिए नहीं।
उदा.
User.findOneAndUpdate({email: user.email}, user, {upsert: true, setDefaultsOnInsert:true}, ...)