Co je metoda „db.collection.updateOne()“ v MongoDB?
' db.collection.updateOne() Metoda ” aktualizuje jeden dokument, který odpovídá definovaným kritériím. Pokud kritériím vyhovuje více než jeden dokument, bude upraven pouze první dokument. Lze jej použít s aktualizačními operátory, jako je „ $set “, “ $ vč ' a mnoho dalších .
Jak používat metodu „db.collection.updateOne()“ v MongoDB?
' db.collection.updateOne() ” metodu lze použít k aktualizaci jednoho pole i více polí jednoho dokumentu, která odpovídají kritériím výběru. Kromě toho může tato metoda také přidat pole do dokumentu a lze ji použít s operátory aktualizace. Syntaxe „ db.collection.updateOne() “ metoda je uvedena níže:
Základní syntaxe
db.collection.updateOne ( { kritéria_filtru } , { Aktualizace } , { možnosti } )
Zde ve výše uvedené syntaxi:
- Tato metoda aktualizuje první dokument, který splňuje kritéria výběru
- ' kritéria_filtru ” definuje kritéria pro aktualizaci
- ' Aktualizace ” obsahuje pole, která budou v dokumentu upravena
- ' možnosti ” argument je volitelný argument, který upravuje fungování této metody, např. upsert ' a ' náznak “
Pro tento příspěvek použijeme „ Linuxhint_Col2 'sbírkové dokumenty k prokázání fungování ' db.collection.updateOne() “ metoda. Chcete-li zobrazit dokumenty uložené v této kolekci, spusťte poskytnutý příkaz:
db.Linuxhint_Col2.find ( )
Výstup
Výstup načetl všechny dokumenty uložené v „ Linuxhint_Col2 “sbírka.
Příklad 1: Aktualizace jednoho pole
Chcete-li aktualizovat jediné pole v dokumentu, definujte jeho kritéria výběru a aktualizujte kritéria. Kritéria aktualizace lze definovat pomocí operátorů aktualizace. Spusťte dotaz pro aktualizaci „ Modeling_Fee z pole na „ 18 000 ' Kde ' Příjmení 'objekt se rovná' Depp “ v dokumentu:
Výstup
Výstup vrátil zprávu o úspěchu.
Chcete-li ověřit provedené změny, načtěte dotčený dokument pomocí tohoto „ nalézt() 'příkaz:
db.Linuxhint_Col2.find ( { 'Název_modelu.Příjmení' : 'Depp' } ) Výstup
Výstup ověřil, že dokument byl úspěšně aktualizován.
Příklad 2: Přidání nového pole pomocí metody „db.collection.updateOne()“.
' db.collection.updateOne() “ metoda přidá nové pole pomocí “ $set ” operátor v dokumentu, pokud již neexistuje. Jako „ Zkušenosti pole neexistuje pro dokumenty, kde je Modeling_Fee ' je méně než ' 9000 “.
Přidáme nové pole „ Zkušenosti “ s hodnotou “ Začátečník “ v dokumentu, kde je „ Modeling_Fee ' je méně než ' 9000 “ pomocí tohoto dotazu:
db.Linuxhint_Col2.updateOne ( { 'Poplatek za modelování' : { $lt : 9000 } } , { $set : { 'Zkušenosti' : 'Začátečník' } } ) Výstup
Výstup vrátí zprávu, která označuje, že jeden dokument odpovídá kritériím výběru a byl úspěšně upraven.
Ověřte si to vyhledáním všech dokumentů dostupných ve sbírce “ Linuxhint_Col2 “:
db.Linuxhint_Col2.find ( ) Výstup
Výstup ukazuje, že jeden dokument, který splňuje podmínku, byl upraven a nové pole bylo úspěšně vloženo.
Příklad 3: Aktualizace více polí dokumentu pomocí metody „db.collection.updateOne()“
Uživatel může upravit i více polí v jednom dokumentu. Zde tento níže uvedený dotaz upraví příjmení a věk dokumentu, kde je „ Jméno ' rovná se ' Noe “:
Výstup
Dotaz byl proveden bez chyby.
Chcete-li ověřit změny, použijte metodu „find()“ k načtení dokumentu, kde je „ Jméno ' rovná se ' Noe :
db.Linuxhint_Col2.find ( { 'Název_modelu.Jméno' : 'Noe' } ) Výstup
Výstup úspěšně vrátil upravený dokument.
Příklad 4: Použijte metodu “db.collection.updateOne()” s aktualizačními operátory
Stejně jako v předchozím příkladu jsme použili „ $set ” aktualizovat operátor, aby upravil hodnoty v “ db.collection.updateOne() “ metoda. Zkusme použít jiného operátora aktualizace “ $ vč “, která zvýší pole o zadanou částku.
Zde v dotazu uvedeném níže metoda hledá dokument, kde je „ Jméno ' rovná se ' Kate “ a dodává „ 1000 “ v „ Modeling_Fee “hodnota pole:
db.Linuxhint_Col2.updateOne ( { 'Název_modelu.Jméno' : 'kate' } , { $ vč : { Modeling_Fee: 1000 } } ) Výstup
Výstup vrátil zprávu o úspěchu.
Chcete-li zobrazit změny, použijte „ nalézt() ” metoda k načtení dotčeného dokumentu:
db.Linuxhint_Col2.find ( { 'Název_modelu.Jméno' : 'kate' } ) Výstup
Výstup zobrazuje upravenou hodnotu „ Modeling_Fee “.
Příklad 5: Přidejte nový dokument, pokud již neexistuje, pomocí argumentu „upsert“.
Volitelný argument lze použít ke změně chování této metody. Jednou z takových možností je „ upsert ” který přidá nový dokument, pokud žádný již existující dokument nesplňuje výběrová kritéria definovaná v dotazu.
Pokusme se přidat nový dokument definováním výběrových kritérií, která nesplňují žádné již existující dokumenty. Poté pro něj nastavte některá pole a přidejte možnost „ upsert “ jako „pravda“, jak je uvedeno v příkazu uvedeném níže:
db.Linuxhint_Col2.updateOne ( { 'Název_modelu.Jméno' : 'David' } , { $set : { Modeling_Fee: 10 000 , Model_Age: 23 , 'Název_modelu.Příjmení' : 'Kovář' } } , { upsert: skutečný } ) Výstup
Výstup ukázal potvrzenou zprávu jako pravdivou.
Nakonec ověřte jeho úpravu spuštěním tohoto příkazu:
db.Linuxhint_Col2.find ( { 'Název_modelu.Jméno' : 'David' } ) Výstup
Výstup ukazoval, že nový dokument byl úspěšně přidán.
Závěr
' db.collection.updateOne() ” metoda v MongoDB se používá k aktualizaci prvního dokumentu, který splňuje kritéria výběru. Může upravit jedno i více polí v dokumentu pomocí operátorů aktualizace, jako je „ $set ' a ' $ vč “. Navíc tato metoda také přijímá volitelné argumenty pro změnu chování metody, jako je „ upsert ” který přidá nový dokument v případě, že kritéria výběru neodpovídají žádnému existujícímu dokumentu. Tento příspěvek pojednává o použití „ db.collection.updateOne() ” metoda v MongoDB.