/ / Nemožno nájsť význam pre polia v dotaze findOneAndUpdate pre mongoose - node.js, mongodb, mongoose

Nepodarilo sa nájsť význam pre polia v dotaze findOneAndUpdate pre mongoose - node.js, mongodb, mongoose

Môže mi niekto pomôcť pochopiť význam parametrov v nižšie uvedenom dopyte:

Model.findOneAndUpdate([conditions], [update], [options], [callback])

Chápem to [update], [options] a [callback] časť, ale [conditions] nie je pre mňa veľmi jasné. Je to spoločná sada parametrov vo väčšine dopytov, ale odkedy som nový pre Node a MongoDB, uvedenie vecí do pohľadu nie je pre mňa príliš prirodzené.

Nemohol som nájsť veľa pomoci aj na oficiálnej stránke. Mohla by to byť triviálna otázka, ale dôkladne pochopí štruktúru dopytov pre Mongoose.

odpovede:

0 pre odpoveď č. 1

Názov metódy findOneAndUpdate() znamená, že s ním môžete nájsť jediný dokument modelu v databáze a tento dokument aktualizovať.

Ale samozrejme musíte špecifikovať ktorý dokument v databáze, ktorú chcete aktualizovať. To je čo [conditions] sa používa pre: hovorí Mongoose "nájdete dokument, ktorý zodpovedá týmto podmienkam, a aktualizujte prvý dokument, ktorý nájdete"("prvý dokument"je užitočné vedieť, pretože podmienky by mohli zodpovedať viacerým dokumentom a findOne* bude iba kedykoľvek zmeniť jeden dokument).

Takže [conditions] sú dotaz, ktorý používa Mongoose na vyhľadanie zodpovedajúcich dokumentov (viac informácií o dopytoch tu).

Ak chcete zmeniť name dokumentu, v ktorom email pole má určitú hodnotu, vyzerá takto:

User.findOneAndUpdate({
email : "foo@example.com"
}, {
name  : "Foo Bar"
}, ...);