आपको क्वेरी में विकल्प सेट करना होगा useFindAndModify
करने के लिए false
, जैसा कि डॉक्स में बताया गया है।
(खोज कीवर्ड वर्तमान में समर्थित विकल्प हैं )
<ब्लॉकक्वॉट>'useFindAndModify':डिफ़ॉल्ट रूप से सही है। makefindOneAndUpdate () और findOneAndRemove () के लिए false पर सेट करें, findAndModify () के बजाय नेटिवफाइंडऑनएंडअपडेट () का उपयोग करें।
और यदि आप नेवले की परिभाषा फ़ाइल देखते हैं, जहाँ उल्लेख किया गया है कि यह findAndModify अद्यतन आदेश कहता है।
/**
* Issues a mongodb findAndModify update command.
* Finds a matching document, updates it according to the update arg,
passing any options,
* and returns the found document (if any) to the callback. The query
executes immediately
* if callback is passed else a Query object is returned.
*/
findOneAndUpdate(): DocumentQuery<T | null, T>;
हाल ही में नेवला डॉक्स में अपडेट किया गया है (यहां क्लिक करें) जहां उल्लेख किया गया है:
<ब्लॉकक्वॉट>Mongoose का findOneAndUpdate() MongoDB ड्राइवर के FindOneAndUpdate() फ़ंक्शन को लंबे समय से प्री-डेट करता है, इसलिए यह इसके बजाय MongoDB ड्राइवर'sfindAndModify() फ़ंक्शन का उपयोग करता है।
ऐसे तीन या अधिक तरीके हैं जिनसे आप FindAndModify
. के उपयोग से बच सकते हैं :
- वैश्विक स्तर पर:विकल्प को गलत पर सेट करें।
// Make Mongoose use `findOneAndUpdate()`. Note that this option is `true`
// by default, you need to set it to false.
mongoose.set('useFindAndModify', false);
- कनेक्शन स्तर पर:हम कनेक्शन विकल्पों का उपयोग करके कॉन्फ़िगर कर सकते हैं:
mongoose.connect(uri, { useFindAndModify: false });
- प्रश्न स्तर पर:
await ModelName.findOneAndUpdate({matchQuery},
{$set: updateData}, {useFindAndModify: false});