Wat is db.collection.updateOne() in MongoDB?

Wat Is Db Collection Updateone In Mongodb



MongoDB is een krachtige niet-relationele database die meerdere documenten kan opslaan. Soms moet de gebruiker een enkel document bijwerken dat aan bepaalde criteria voldoet. In deze situatie kunnen ze de ' db.collection.updateOne() '-methode, die het eerste document dat aan de selectiecriteria voldoet, bijwerkt en wijzigt en het wijzigt.

Wat is de 'db.collection.updateOne()'-methode in MongoDB?

De ' db.collection.updateOne() ” methode werkt een enkel document bij dat overeenkomt met de gedefinieerde criteria. Als meer dan één document aan de criteria voldoet, wordt alleen het eerste document gewijzigd. Het kan worden gebruikt met update-operators, zoals ' $set ”, “ $ incl ' En veel meer .

Hoe de methode 'db.collection.updateOne()' in MongoDB te gebruiken?

De ' db.collection.updateOne() ”-methode kan worden gebruikt om een ​​enkel veld bij te werken, evenals meerdere velden van een enkel document die voldoen aan de selectiecriteria. Bovendien kan deze methode ook een veld aan een document toevoegen en kan deze worden gebruikt met update-operators. De syntaxis van de ' db.collection.updateOne() ” methode wordt hieronder gegeven:







Basis syntaxis



db.collectie.updateOne ( { filter_criteria } , { update } , { opties } )

Hier in de bovenstaande syntaxis:



  • Deze methode werkt het eerste document bij dat aan de selectiecriteria voldoet
  • De ' filter_criteria ” definieert de criteria voor de update
  • De ' update ” bevat de velden die in het document zullen worden gewijzigd
  • De ' opties ” argument is een optioneel argument dat de werking van deze methode wijzigt, zoals “ overstuur ' En ' wenk

Voor dit bericht gebruiken we een ' Linuxhint_Col2 ” verzamelingsdocumenten om de werking van de “ db.collection.updateOne() ” methode. Voer de meegeleverde opdracht uit om de documenten te bekijken die in deze verzameling zijn opgeslagen:





db.Linuxhint_Col2.zoeken ( )

Uitgang

De uitvoer heeft alle documenten opgehaald die zijn opgeslagen in de ' Linuxhint_Col2 ” verzameling.



Voorbeeld 1: een enkel veld bijwerken
Om het enkele veld in een document bij te werken, definieert u de selectiecriteria en werkt u de criteria bij. De updatecriteria kunnen worden gedefinieerd met behulp van de update-operators. Laten we een query uitvoeren om de ' Modelleringskosten ' veld naar ' 18000 ' waar de ' Achternaam 'object is gelijk aan' dep ” in het document:

db.Linuxhint_Col2.updateOne ( { 'Model_Naam.Achternaam' : 'Depp' } , { $set : { Modelleringsvergoeding: 18000 } } )

Uitgang

De uitvoer retourneerde het succesbericht.

Om de aangebrachte wijzigingen te verifiëren, haalt u het betreffende document op met behulp van deze ' vinden() ” commando:

db.Linuxhint_Col2.zoeken ( { 'Model_Naam.Achternaam' : 'Depp' } )

Uitgang

De uitvoer heeft geverifieerd dat het document met succes is bijgewerkt.

Voorbeeld 2: voeg een nieuw veld toe met behulp van de methode 'db.collection.updateOne()'.
De ' db.collection.updateOne() ” methode voegt een nieuw veld toe met behulp van de “ $set ”-operator in het document als deze nog niet bestaat. als de “ Ervaring ' veld bestaat niet voor de documenten waar de ' Modelleringskosten ' is minder dan ' 9000 ”.

Laten we het nieuwe veld toevoegen ' Ervaring ” met de waarde “ Beginner ” in het document waar de “ Modelleringskosten ' is minder dan ' 9000 ” met behulp van deze vraag:

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

Uitgang

De uitvoer retourneert het bericht dat aangeeft dat één document voldoet aan de selectiecriteria en met succes is gewijzigd.

Laten we het verifiëren door alle documenten op te halen die beschikbaar zijn in de collectie ' Linuxhint_Col2 ”:

db.Linuxhint_Col2.zoeken ( )

Uitgang

De uitvoer laat zien dat één document dat aan de voorwaarde voldoet, is gewijzigd en dat een nieuw veld met succes is ingevoegd.

Voorbeeld 3: werk meerdere velden van een document bij met behulp van de methode 'db.collection.updateOne()'.
De gebruiker kan zelfs meerdere velden in één document wijzigen. Hier zal deze onderstaande vraag de achternaam en leeftijd wijzigen voor het document waar de ' Voornaam ” is gelijk aan “ Noach “:

db.Linuxhint_Col2.updateOne ( { 'Model_Naam.Voornaam' : 'Noach' } , { $set : { 'Model_Naam.Achternaam' : 'Doe' , 'Model_Leeftijd' : 23 } } )

Uitgang

De query is foutloos uitgevoerd.

Om de wijzigingen te verifiëren, gebruikt u de methode 'find()' om het document op te halen waar de ' Voornaam ” is gelijk aan “ Noach :

db.Linuxhint_Col2.zoeken ( { 'Model_Naam.Voornaam' : 'Noach' } )

Uitgang

De uitvoer retourneerde het gewijzigde document met succes.

Voorbeeld 4: gebruik de methode 'db.collection.updateOne()' met update-operators
Net als in het vorige voorbeeld gebruikten we de ' $set ” update-operator om de waarden in de “ db.collection.updateOne() ” methode. Laten we proberen een andere update-operator te gebruiken ' $ incl ” waarmee het veld wordt verhoogd met het opgegeven bedrag.

Hier in de onderstaande zoekopdracht zoekt de methode naar het document waar de ' Voornaam ” is gelijk aan “ Kate ” en voegt toe “ 1000 ' in de ' Modelleringskosten Waarde veld ”:

db.Linuxhint_Col2.updateOne ( { 'Model_Naam.Voornaam' : 'Kate' } , { $ incl : { Modelleringsvergoeding: 1000 } } )

Uitgang

De uitvoer retourneerde een succesbericht.

Gebruik de ' vinden() ” methode om het betreffende document op te halen:

db.Linuxhint_Col2.zoeken ( { 'Model_Naam.Voornaam' : 'Kate' } )

Uitgang

De uitvoer geeft de gewijzigde waarde weer van ' Modelleringskosten ”.

Voorbeeld 5: voeg een nieuw document toe als het nog niet bestaat met behulp van het 'upsert'-argument
Het optionele argument kan worden gebruikt om het gedrag van deze methode te wijzigen. Een van die opties is “ overstuur ” waarmee een nieuw document wordt toegevoegd als er geen bestaand document voldoet aan de selectiecriteria die in de query zijn gedefinieerd.

Laten we proberen een nieuw document toe te voegen door de selectiecriteria te definiëren die niet voldoen aan reeds bestaande documenten. Stel daarna enkele velden in en voeg de optie ' overstuur ' als 'true' zoals weergegeven in de onderstaande opdracht:

db.Linuxhint_Col2.updateOne ( { 'Model_Naam.Voornaam' : 'David' } , { $set : { Modelleringsvergoeding: 10000 ,  Modelleeftijd: 23 , 'Model_Naam.Achternaam' : 'Smid' } } , { opsteken: WAAR } )

Uitgang

De uitvoer toonde het bevestigde bericht als waar.

Controleer ten slotte de wijziging door deze opdracht uit te voeren:

db.Linuxhint_Col2.zoeken ( { 'Model_Naam.Voornaam' : 'David' } )

Uitgang

De uitvoer gaf aan dat het nieuwe document met succes is toegevoegd.

Conclusie

De ' db.collection.updateOne() ” methode in MongoDB wordt gebruikt om het eerste document bij te werken dat aan de selectiecriteria voldoet. Het kan zowel enkele als meerdere velden in een document wijzigen door de update-operators te gebruiken, zoals ' $set ' En ' $ incl ”. Bovendien accepteert deze methode ook optionele argumenten om het gedrag van de methode te veranderen, zoals ' overstuur ” die een nieuw document toevoegt voor het geval de selectiecriteria niet overeenkomen met een bestaand document. Dit bericht heeft het gebruik van de ' db.collection.updateOne() '-methode in MongoDB.