MongoDB erstatning og erstatning

MongoDB erstatning og erstatning
Funksjonene for erstatning () og erstatning () vil bli brukt til å erstatte en verdi i MongoDB -databasen. Det er bare en mindre forskjell i arbeidet med begge operatørene. Erstatningsmetoden brukes til å erstatte et enslig dokument som samsvarer med et angitt filter. Metoden tar tre argumenter: filteret, erstatningsdokumentet og et valgfritt alternativobjekt. Mens erstatningsmetoden brukes til å erstatte alle dokumenter i en samling med et nytt sett med dokumenter. Denne metoden brukes vanligvis til bulkoppdateringer og kan være egnet når du overfører data fra en samling til en annen. Metoden tar to argumenter: erstatningsdokumenter og et valgfritt alternativobjekt. I denne guiden i dag vil vi diskutere bruken av begge operatørene ved hjelp av eksempler.

Lage samling

Med utgangspunkt i MongoDB -skallet lager vi en ny samling “Dummy” i vår MongoDB ved hjelp av kommandoen nedenfor: CreateCollection () -metoden.

Test> DB.CreateCollection ("Dummy")
OK: 1

Sett inn dokumenter

Det er på tide å legge til dokumenter til MongoDB -samlingen. For dette er MongoDB -kommandoen nedenfor blitt utført som setter inn flere dokumenter i "Dummy" -samlingen: InsertMany () -funksjonen. Dokumentene inneholder informasjon om byer, land og et tellefelt (med verdier for noen av dokumentene). Hvert dokument i matrisen har et sett med nøkkelverdipar. Kommandoen returnerer et svar som innsatsen er anerkjent.

Test> DB.Dummy.InsertMany ([City: "Texas", Country: "England", Count: 5,
... City: "Los Angeles", Country: "America", Count: 2, City: "Italia", Country: "France",
… City: "Istanbul", Country: "Tyrkia", Count: 8, City: "Delhi", Country: "India", Count: 7])

Anerkjent: sant,
innsats:
'0': ObjectId ("63c7b3588083bbf655d69684"),
'1': ObjectId ("63c7b3588083bbf655d69685"),
'2': ObjectId ("63c7b3588083bbf655d69686"),
'3': ObjectId ("63c7b3588083bbf655d69687"),
'4': ObjectId ("63c7b3588083bbf655d69688")

Vis dokumenter

For å hente og vise alle dokumentene fra "Dummy" -samlingen, vil vi kaste av Find () -metoden i instruksjonen som er vist nedenfor. De returnerte dokumentene er representert i et matriseformat, med hver post i matrisen som et objekt. Feltene i hvert dokument inkluderer "_id", "by", "land" og "count" i.e. “_ID” -feltet er en unik identifikator tildelt av MongoDB.

Test> DB.Dummy.finne()
[
°,
°,
_id: ObjectId ("63c7b3588083bbf655d69686"), by: 'Italia', land: 'Frankrike',
°,
°
]

Eksempel 01: erstatningsmetode

Erstatningsmetoden brukes til å erstatte et enkelt dokument som samsvarer med et spesifisert filter i MongoDB. Derfor vil vi bruke den i instruksjonen nedenfor for å erstatte et dokument i "Dummy" -samlingen. Det første argumentet som er gitt til erstatningsmetoden er filteret. I dette tilfellet er filteret “City”: “Delhi”, noe som betyr at dokumentet med "City" -feltet satt til "Delhi" vil bli erstattet. Det andre argumentet som er overført til erstatningsmetoden er erstatningsdokumentet, som er det nye dokumentet som vil erstatte det gamle: “Country”: “India-Pacific”. Dermed vil dokumentet med "by" -feltet som er satt til "Delhi" nå ha "land" -feltet satt til "India-Pacific" i stedet for sin forrige verdi.

Koden er pakket inn i en prøvefangstblokk, som brukes til å håndtere eventuelle feil som kan oppstå under utførelsen av erstatningsmetoden. Hvis det oppstår en feil, vil den bli fanget av fangstblokken og skrevet ut til konsollen ved hjelp av print () -funksjonen. Utgangen viser at ett dokument er blitt matchet, endret og det oppsatte antallet er null.

test> prøv
… DB.Dummy.erstatte ("by": "Delhi", "land": "India-Pacific");
… Fangst (e) print (e);

Anerkjent: sant, C7B3588083BBF655D69684 "),
innsats: null,
MatchedCount: 1, og ',
ModifiedCount: 1,
UPSERTEDCOUNT: 0

Etter å ha vist alle dokumentene fra "Dummy" -samlingen på skallet ved hjelp av "Finn" -funksjonen, må vi vite at de 5th Record er oppdatert med "Country: 'India-Pacific'".

Test> DB.Dummy.finne()
[
°,
°,
_id: ObjectId ("63c7b3588083bbf655d69686"), by: 'Italia', land: 'Frankrike',
°,
_id: ObjectId ("63c7b3588083bbf655d69688"), land: 'India-Pacific'
]

Eksempel nr. 02: Erstatt metode med alternativ

I dette kodeeksemplet vil vi benytte oss. Derfor inkluderer koden vi har brukt nedenfor et alternativ for å øke dokumentet. Det første argumentet som leveres til erstatningsmetoden er filteret “City”: “Mali”: Dokumentet med “City” -feltet som er satt til “Mali” vil bli erstattet. Det andre argumentet er erstatningsdokumentet City: “Mali”, Country: “Maldives”, Count: 5. "By" -feltet som er satt til "Mali" vil nå ha "land" -feltet til "Maldivene" og "Count" satt til 5.

Det tredje argumentet som er gitt til erstatningsmetoden er alternativet Upsert: True: Å sette inn et helt nytt dokument hvis ikke funnet. Koden er pakket inn i en prøvefangstblokk igjen for å skrive ut () feilen som er fanget i kommandoen. Responsresultatet viser at ingen dokumenter er blitt matchet og endret, men ett dokument er blitt oppløst: Et nytt dokument settes inn siden dokumentet som er spesifisert i filteret ikke eksisterte.

Test> prøv DB.Dummy.erstatte ("by": "mali",
... City: "Mali", land: "Maldivene", telle: 5, upsert: true);
… Fangst (e) print (e);

Anerkjent: sant,
Sett inn: ObjectID ("63C7BFAAF8C41DF4B034B120"),
MatchedCount: 0,
ModifiedCount: 0,
UPSERTEDCOUNT: 1

For å bekrefte innsetting av en ekstra rekord, har vi vist hele "dummy" -samlingen og har resultatet vist nedenfor. Oppsamlingsalternativet har satt inn et nytt dokument på slutten.

Test> DB.Dummy.finne()
[
°,
°,
_id: ObjectId ("63c7b3588083bbf655d69686"), by: 'Italia', land: 'Frankrike',
°,
°
°
]

Eksempel # 03: erstatningsmetode

Her er illustrasjonen om hvordan erstatningsoperatøren fungerer i MongoDB. Innspillet for $ erstatningsoperatøren er "land" -feltet fra dokumentene i samlingen. "Finn" -verdien er "jeg" og erstatningsverdien er "e". Dette betyr at alle forekomster av bokstaven "i" i "land" -feltet vil bli erstattet med bokstaven "e". Resultatet er et nytt "land" -felt med den modifiserte strengen. For eksempel vil den opprinnelige verdien “India-Pacific” bli erstattet med “Indea-Pacefec”, verdien “Amerika” er nå “Amerca”, og “Maldivene” er nå “Maldeves” som demonstrert i utgangen også.

Test> DB.Dummy.Aggregate ([$ prosjekt: land: $ erstatning: input: "$ country", finn: "i", erstatning: "e"])
[
_id: ObjectId ("63c7b3588083bbf655d69684"), land: 'England',
_id: ObjectId ("63c7b3588083bbf655d69685"), land: 'Amerca',
_id: ObjectId ("63c7b3588083bbf655d69686"), land: 'Frankrike',
_id: ObjectId ("63c7b3588083bbf655d69687"), land: 'Tyrkia',
_id: ObjectId ("63c7b3588083bbf655d69688"), land: 'Indea-Pacefec',
_id: ObjectId ("63c7bfaaf8c41df4b034b120"), land: 'Maldeves'
]

La oss oppdatere illustrasjonen ovenfor igjen. "Finn" -argumentet er gitt med en verdi "A" og erstatningsverdien er "*****". Dette betyr at alle forekomster av bokstaven "A" i "by" -feltet vil bli erstattet med strengen "******". Resultatet er et nytt "by" -felt med den modifiserte strengen. For eksempel ville den originale "Texas" bli erstattet med "Tex ***** s", og den originale "Italia" ville bli erstattet med "det ***** ly" og så videre.

Test> DB.Dummy.Aggregate ([$ prosjekt: City: $ erstatning: input: "$ city", finn: "a", erstatning: "******"])
[
_id: ObjectId ("63c7b3588083bbf655d69684"), by: 'Tex ****** S',
_id: ObjectId ("63c7b3588083bbf655d69685"), by: 'Los Angeles',
_id: ObjectId ("63c7b3588083bbf655d69686"), by: 'it ****** ly',
_id: ObjectId ("63c7b3588083bbf655d69687"), by: 'ist ****** nbul',
_id: ObjectId ("63c7b3588083bbf655d69688"), by: null,
_id: ObjectId ("63c7bfaaf8c41df4b034b120"), by: 'm ****** li'
]

Konklusjon

Vi har definert funksjonene for erstatning () og erstatning () sammen med forskjellen mellom dem. Vi har forklart 3 av de distinkte eksemplene i artikkelen I.e. erstatning () -metode for å oppdatere et enkelt felt, oppgangsalternativet som skal brukes i erstatningsmetoden for å legge til en ny post hvis ikke funnet et matchende felt og erstatningsmetoden for å erstatte en streng i alle dokumenter. Erstatningsmetoden er veldig forskjellig fra erstatningsmetoden når det gjelder effekten den gir databasesamlingen.