Hvordan du bruker upsert spørring i mongoDB

Hvordan du bruker upsert spørring i mongoDB
Databasene er bredt kategorisert i SQL- og NoSQL -typer. MongoDB faller inn under sistnevnte kategori og støtter et sterkt spørringsspråk for å behandle data. Upsert -spørringen i MongoDB brukes til å hjelpe oppdateringen og erstatte metoder. Det oppretter et nytt dokument hvis tilstanden ikke blir oppfylt av oppdaterings-/erstatningsmetodene. Noen utvidede metoder for en oppdatering støttes også av Upsert spørring, og de inkluderer FindAndModify, UpdateOne (), erstatning ().

Denne artikkelen vil forklare bruken av UPSERT -spørring fra grunnleggende til avanserte nivåer. Den avanserte bruken av denne spørringen vil bli forklart ved å bruke opptreden med flere metoder.

Hvordan Upsert -spørring fungerer i MongoDB

Oppsamlingsalternativet har følgende syntaks:

Upsert:

Den boolske verdien kan være True/False. Som standard har oppføringen en falsk verdi.

Hvordan du bruker upsert spørring med oppdateringsmetoden

Denne delen forklarer upsert -spørringen med flere kommandoer. La oss utøve oppdateringsmetoden først. Hvordan fungerer oppdateringen i en tilstand der dokumentet vi ønsker å matche ikke eksisterer?

Personalsamlingen inneholder følgende dokumenter:

> DB.personale.finne().ganske()

Den nedenfor-nevnte kommandoen prøver å oppdatere et dokument (_id: 3) som ikke eksisterer, så oppdateringsspørsmålet vil heller ikke Upsert eller Oppdater ethvert dokument.

> DB.personale.Oppdatering (_ id: 3, navn: "Alen")

La oss nå legge til en Upsert alternativ og sett verdien til ekte i samme tilstand som vi forklarte ovenfor. Kommandoen nevnt nedenfor prøver å oppdatere et dokument som samsvarer med navnet: “Sam”Felt, men dokumentet eksisterer ikke.

Det observeres fra utgangen at antallet opplyste dokumentverdier er "1".

> DB.personale.OPPDATERING (Navn: "Sam", Desig: "Team-Lead", Upsert: True)

For å bekrefte dette, la oss sjekke dokumentene inne "personale”Samling ved å bruke følgende kommando:

> DB.personale.finne().ganske()

Merk: Den vakre () -metoden brukes til å få utdataene i et klarere format.

Hvordan du bruker upsert spørring med updateone -metoden

Oppsamlingsalternativet kan brukes med UpdateOne -metoden for å sette inn et dokument hvis tilstandskampen ikke lykkes. “personale”Samlingen inneholder tre dokumenter, og vi vil legge til et dokument med (_id: 3) som ikke eksisterer. Å lage Upsert Funksjonell, må du sette verdien til True, ovennevnte scenario utføres ved å utstede kommandoen nevnt nedenfor:

> DB.personale.UpdateOne (_ id: 3, $ set: name: "Sam", Desig: "Team-Lead", Upsert: True)

I kommandoen ovenfor har vi brukt “_id: 3”For å matche et dokument, har derfor det oppsatte dokumentet fått tildelt en unik ID"_id: 3“. Dessuten kan du bekrefte Upsert handling ved å få innholdet i personale samling:

> DB.personale.finne().ganske()

Hvordan du bruker upsert -spørring med erstatningsmetode

Erstatningsmetoden erstatter feltverdien (e) hvis kampen er vellykket. Og hvis matchingen ikke er vellykket, kan Upsert brukes til å legge til et nytt dokument.

I den nedenfor oppgitte kommandoen, erstatte Kommando prøver å erstatte dokumentet som har felt “Navn: Tom“(Som ikke eksisterer faktisk). Oppsamlingsverdien er “ekte", Så det vil legge til nytt dokument med en standard unik ID som inneholder felt"Navn: Jobber”Og“Desig: Forfatter“:

> DB.personale.erstatte (navn: "tom", navn: "Jobes", Desig: "forfatter", Upsert: True)

Hvordan bruke Upsert med FindAndModify -metoden

De findAndModify () Endrer dokumentet og fungerer nesten det samme som Oppdater() metode, men findAndModify () endrer bare ett dokument som samsvarer først, mens Oppdater() Metode oppdaterer alle matchende dokumenter.

Kommandoen skrevet nedenfor viser bruken av USPERT med FindAndModify () -metoden. Som findAndModify () Unnlatelse av å samsvare med noe dokument, derfor kommer et nytt dokument inn:

spørsmål”Søkeord brukt i kommandoen prøver å matche”_id: 5”Og prøver å oppgradere“Num”Felt etter verdi”15“:

> DB.personale.findAndModify (spørring: _id: 5, oppdatering: $ inc: num: 15, upsert: true)

Spørringen returnerer “null”Fordi vi ikke har brukt sortering i kommandoen og heller ikke noe dokumentkamper også. Imidlertid, hvis du ser på innholdet i "personale”Samling, finner du det nylig oppsatte dokumentet med ID -verdi”_id: 5“:

> DB.personale.finne().ganske()

Konklusjon

MongoDB har en lang liste over kommandoer og spørsmål for å oppdatere eller erstatte data i dokumenter om en samling. Ved siden av disse kommandoene, hjelper Upsert -spørringen disse oppdateringen/erstattet kommandoer for å sette inn et nytt dokument hvis oppdateringen/erstatningskommandoer ikke samsvarer med noe dokument. I denne guiden for MongoDB -serien har vi gitt bruk av et upsert -spørring med flere kommandoer i MongoDB. Etter å ha analysert arbeidsmekanismen for oppsamling, konkluderes det med at Upsert fungerer som en innsatsmetode for flere oppdaterings-/fjerningsmetoder i MongoDB.