Anda perlu menyetel opsi dalam kueri useFindAndModify
menjadi false
, seperti yang disebutkan dalam dokumen.
(kata kunci pencarian Opsi yang saat ini didukung adalah )
'useFindAndModify':benar secara default. Setel ke false ke makefindOneAndUpdate() dan findOneAndRemove() gunakan nativefindOneAndUpdate() daripada findAndModify().
dan jika Anda melihat file definisi luwak, di mana disebutkan bahwa itu memanggil perintah pembaruan 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>;
Baru-baru ini diperbarui dalam dokumen luwak (Klik di sini) untuk penghentian ini jika disebutkan:
FindOneAndUpdate() Mongoose sudah lama mendahului fungsi findOneAndUpdate() driver MongoDB, jadi ia menggunakan fungsi driver MongoDB'sfindAndModify() sebagai gantinya.
Ada tiga cara atau lebih untuk menghindari penggunaan FindAndModify
:
- Pada tingkat Global:Setel opsi ke false.
// Make Mongoose use `findOneAndUpdate()`. Note that this option is `true`
// by default, you need to set it to false.
mongoose.set('useFindAndModify', false);
- Pada tingkat koneksi:kita dapat mengonfigurasi menggunakan opsi koneksi:
mongoose.connect(uri, { useFindAndModify: false });
- Pada tingkat Kueri:
await ModelName.findOneAndUpdate({matchQuery},
{$set: updateData}, {useFindAndModify: false});