Saya mencoba menemukan satu catatan yang berisi kecocokan nama 'yoyo' menggunakan regex dalam kueri findOne (regex peka huruf besar-kecil). Alih-alih menemukan kecocokan dalam koleksi, kesalahan dilemparkan MongooseError: Operasi 'names.findOne()'buffering habis setelah 10000ms.

Sepengetahuan saya, permintaan saya tampaknya tidak menerapkan opsi regex dari kueri. Tapi saya tidak yakin mengapa. Juga opsi maxTimeMS tampaknya tidak berfungsi juga tidak yakin mengapa.

names.findOne({name: {$regex: 'yoyo',$options: 'i'}}, callback).maxTimeMS(2000).exec();

Katakanlah koleksi hanya berisi satu catatan. {name:"YoYo",age:19}

0
Hopitosis 11 Mei 2021, 22:54

1 menjawab

Jawaban Terbaik

Tidak ada operator $regex untuk luwak. anda harus memasukkan regex dalam kueri find():

{name: {$regex: /yoyo/, $options: /*whatever regex options you need, like /g, etc */}}

Dengan cara itu regex didelegasikan ke mesin mongoDb dan diterapkan untuk bidang yang Anda tentukan (mis. "nama").

0
ISAE 11 Mei 2021, 22:11