Ano ang db.collection.updateOne() sa MongoDB?

Ano Ang Db Collection Updateone Sa Mongodb



Ang MongoDB ay isang makapangyarihang non-relational database na maaaring mag-imbak ng maraming dokumento. Minsan, maaaring kailanganin ng user na mag-update ng isang dokumento na nakakatugon sa ilang partikular na pamantayan. Sa ganitong sitwasyon, maaari nilang gamitin ang ' db.collection.updateOne() ” na paraan, na nag-a-update at nagbabago sa unang dokumento na nakakatugon sa pamantayan sa pagpili at binabago ito.

Ano ang Paraang 'db.collection.updateOne()' sa MongoDB?

Ang ' db.collection.updateOne() ” paraan ay nag-a-update ng isang dokumento na tumutugma sa tinukoy na pamantayan. Kung higit sa isang dokumento ang tumutugma sa pamantayan ang unang dokumento lamang ang babaguhin. Maaari itong magamit sa Mga Operator ng Update, tulad ng ' $set ”, “ $inc ” at marami pa .

Paano Gamitin ang Paraang 'db.collection.updateOne()' sa MongoDB?

Ang ' db.collection.updateOne() ” paraan ay maaaring gamitin upang i-update ang isang solong field pati na rin ang maramihang mga patlang ng iisang dokumento na tumutugma sa pamantayan sa pagpili. Bukod dito, ang pamamaraang ito ay maaari ring magdagdag ng isang patlang sa isang dokumento at maaaring magamit sa mga operator ng pag-update. Ang syntax ng ' db.collection.updateOne() ” paraan ay ibinigay sa ibaba:







Pangunahing Syntax



db.collection.updateOne ( { filter_criteria } , { update } , { mga pagpipilian } )

Dito sa itaas na syntax:



  • I-a-update ng paraang ito ang unang dokumento na nakakatugon sa pamantayan sa pagpili
  • Ang ' filter_criteria ” tumutukoy sa pamantayan para sa pag-update
  • Ang ' update ” ay naglalaman ng mga patlang na babaguhin sa dokumento
  • Ang ' mga pagpipilian Ang ” argumento ay isang opsyonal na argumento na nagbabago sa pagtatrabaho ng pamamaraang ito, gaya ng “ upsert 'at' pahiwatig

Para sa post na ito, gagamit kami ng ' Linuxhint_Col2 ' mga dokumento ng koleksyon upang ipakita ang paggawa ng ' db.collection.updateOne() ” paraan. Upang tingnan ang mga dokumentong nakaimbak sa koleksyong ito, isagawa ang ibinigay na utos:





db.Linuxhint_Col2.find ( )

Output

Ang output ay nakuha ang lahat ng mga dokumento na nakaimbak sa ' Linuxhint_Col2 ” koleksyon.



Halimbawa 1: I-update ang isang Single Field
Upang i-update ang solong field sa isang dokumento, tukuyin ang pamantayan sa pagpili nito at i-update ang pamantayan. Maaaring tukuyin ang pamantayan sa pag-update gamit ang mga operator ng pag-update. Magpatakbo tayo ng query para i-update ang “ Modeling_Fee ” field sa “ 18000 'saan ang' Huling pangalan 'katumbas ng bagay' Depp ” sa dokumento:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.Last_Name' : 'Depp' } , { $set : { Modeling_Fee: 18000 } } )

Output

Ibinalik ng output ang mensahe ng tagumpay.

Upang i-verify ang mga pagbabagong ginawa, kunin ang apektadong dokumento gamit ang ' hanapin() ” utos:

db.Linuxhint_Col2.find ( { 'Model_Name.Last_Name' : 'Depp' } )

Output

Na-verify ng output na matagumpay na na-update ang dokumento.

Halimbawa 2: Magdagdag ng Bagong Field Gamit ang Paraang 'db.collection.updateOne()'.
Ang ' db.collection.updateOne() Ang pamamaraan ay nagdaragdag ng isang bagong field gamit ang ' $set ” operator sa dokumento kung hindi pa ito umiiral. Bilang ang ' karanasan Ang field na ” ay hindi umiiral para sa mga dokumento kung saan ang “ Modeling_Fee ' ay mas kaunti sa ' 9000 ”.

Idagdag natin ang bagong field ' Karanasan 'na may halaga' Baguhan 'sa dokumento kung saan ang ' Modeling_Fee ' ay mas kaunti sa ' 9000 ” gamit ang query na ito:

db.Linuxhint_Col2.updateOne ( { 'Modeling_Fee' : { $lt : 9000 } } , { $set : { 'Karanasan' : 'Beginner' } } )

Output

Ibinabalik ng output ang mensahe na nagpapahiwatig na ang isang dokumento ay tumutugma sa pamantayan sa pagpili at matagumpay na nabago.

I-verify natin ito sa pamamagitan ng pagkuha ng lahat ng mga dokumentong makukuha sa koleksyon ' Linuxhint_Col2 ”:

db.Linuxhint_Col2.find ( )

Output

Ang output ay nagpapakita na ang isang dokumento na nakakatugon sa kundisyon ay nabago, at isang bagong field ang matagumpay na naipasok.

Halimbawa 3: I-update ang Maramihang Mga Patlang ng isang Dokumento Gamit ang Paraang “db.collection.updateOne()”
Maaaring baguhin ng user ang maramihang mga field sa isang dokumento kahit na. Dito babaguhin ng query na ito na ibinigay sa ibaba ang apelyido at edad para sa dokumento kung saan ang ' Pangalan 'katumbas' Noah “:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'Noah' } , { $set : { 'Model_Name.Last_Name' : 'Doe' , 'Model_Age' : 23 } } )

Output

Ang query ay naisakatuparan nang walang anumang error.

Upang i-verify ang mga pagbabago, gamitin ang 'find()' na paraan upang kunin ang dokumento kung saan ang ' Pangalan 'katumbas' Noah :

db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Noah' } )

Output

Matagumpay na naibalik ng output ang binagong dokumento.

Halimbawa 4: Gamitin ang Paraang “db.collection.updateOne()” sa Mga Operator ng Update
Tulad ng sa nakaraang halimbawa, ginamit namin ang ' $set ' i-update ang operator upang baguhin ang mga halaga sa ' db.collection.updateOne() ” paraan. Subukan nating gumamit ng isa pang operator ng pag-update ' $inc ” na nagdaragdag sa field na may tinukoy na halaga.

Dito sa query na ibinigay sa ibaba, hinahanap ng pamamaraan ang dokumento kung saan ang ' Pangalan 'katumbas' Kate 'at idinagdag' 1000 ' nasa ' Modeling_Fee ” halaga ng field:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'Kate' } , { $inc : { Modeling_Fee: 1000 } } )

Output

Nagbalik ang output ng mensahe ng tagumpay.

Upang makita ang mga pagbabago, gamitin ang ' hanapin() ” paraan para makuha ang apektadong dokumento:

db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Kate' } )

Output

Inilalarawan ng output ang binagong halaga ng ' Modeling_Fee ”.

Halimbawa 5: Magdagdag ng Bagong Dokumento kung Wala Na Ito Gamit ang 'upsert' Argument
Maaaring gamitin ang opsyonal na argumento upang baguhin ang pag-uugali ng pamamaraang ito. Ang isang ganoong opsyon ay ' upsert ” na nagdaragdag ng bagong dokumento kung wala pang umiiral na dokumento ang nakakatugon sa pamantayan sa pagpili na tinukoy sa query.

Subukan nating magdagdag ng bagong dokumento sa pamamagitan ng pagtukoy sa pamantayan sa pagpili na hindi nakakatugon sa anumang umiiral nang mga dokumento. Pagkatapos nito, magtakda ng ilang mga patlang para dito at idagdag ang opsyon na ' upsert ' bilang 'totoo' tulad ng ipinapakita sa utos na ibinigay sa ibaba:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'David' } , { $set : { Modeling_Fee: 10000 ,  Model_Age: 23 , 'Model_Name.Last_Name' : 'Smith' } } , { upsert: totoo } )

Output

Ang output ay nagpakita ng kinikilalang mensahe bilang totoo.

Panghuli, i-verify ang pagbabago nito sa pamamagitan ng pagpapatakbo ng command na ito:

db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'David' } )

Output

Ang output ay naglalarawan na ang bagong dokumento ay matagumpay na naidagdag.

Konklusyon

Ang ' db.collection.updateOne() ” paraan sa MongoDB ay ginagamit upang i-update ang unang dokumento na nakakatugon sa pamantayan sa pagpili. Maaari nitong baguhin ang isang solong pati na rin ang maramihang mga patlang sa isang dokumento sa pamamagitan ng paggamit ng mga operator ng pag-update, tulad ng ' $set 'at' $inc ”. Bukod dito, ang pamamaraang ito ay tumatanggap din ng mga opsyonal na argumento upang baguhin ang pag-uugali ng pamamaraan, tulad ng ' upsert ” na nagdaragdag ng bagong dokumento kung sakaling hindi tumugma ang pamantayan sa pagpili sa anumang umiiral na dokumento. Tinalakay ng post na ito ang paggamit ng ' db.collection.updateOne() ” paraan sa MongoDB.