Hvordan bruke MongoDB $ addToset -operatøren?
$ Addtoset -operatøren er ansatt i oppdateringsmetoden () metoden til MongoDB. $ Addtoset -operatøren legger inn parameteren "felt" og "tillegg". "Feltet" indikerer kolonnen i dokumentet som skal oppdateres. "Tillegget" er parameteren som tildeles verdien som skal settes inn i matrisen til det tilsvarende feltet. Før vi bruker $ addtoset -operatøren i MongoDB -spørringen, må vi etablere samlingen. Her har vi en MongoDB -samling av "kurs" som vi har brukt InsertMany () -spørringen for å legge til følgende dokumenter.
db.Kurs.INSERTMANY ([
"_id": 1,
"Felt": "Det",
"Kurs": ["Web Development", "Database", "Python"],
"Credithours": [5, 2, 7]
,
"_id": 2,
"Felt": "CS",
"Kurs": ["Python", "Networking", "Computing"],
"Credithours": [8, 4, 2]
,
"_id": 3,
"Felt": "SE",
"Kurs": ["Data Science", "Python", "IBM"],
"Credithours": [2, 9, 5]
])
Resultatet av å legge til dokumentene til "Courses" -samlingen blir presentert nedenfor.
anerkjent: sant, innsats: '0': 1, '1': 2, '2': 3
Eksempel nr. 1: Spørring av $ addtoset -operatøren i MongoDB for å legge til verdien i et matrisefelt
Her legger vi til den nye verdien i feltet ved å bruke $ addtoset -operatøren. I MongoDB -spørringen har vi brukt oppdateringsmetoden () på samlingen “Courses”. Update () -metoden legger videre til tilstanden “Felt”: “CS” før $ AddToset -operatøren. For det første blir dokumentet søkt som er satt med verdien “CS” mot kolonnen “Felt” i samlingen. Når dokumentet vil bli matchet, vil $ addtoset -operatøren fortsette med operatøren for å legge til verdien. Vi har gitt $ AddToset -operatøren med array -feltet "kurs" for å legge til et nytt verdiskapelement "-kontoer".
db.Kurs.Oppdatering ("Felt": "CS", $ addToset: "Courses": "Accounts")
Utgangen viser at det nye array -elementet “kontoer” er lagt ved feltet “Kurs”.
Anerkjent: sant,
innsats: null,
MatchedCount: 1,
ModifiedCount: 1,
UPSERTEDCOUNT: 0
Vi har undersøkt samlingen vår for å bekrefte modifiseringen. Array -feltet “Courses” er vellykket endret med den nye verdien “Accounts”.
_id: 2,
Felt: 'CS',
Kurs: ['Python', 'Networking', 'Computing', 'Accounts'],
Credithours: [8, 4, 2]
Eksempel 2: Spørring av $ AddToset -operatøren i MongoDB for å legge til et nytt felt
I spørringen ovenfor brukes $ addtoset -operatøren for å legge til den nye verdien i det eksisterende feltet. Videre kan vi sette inn det nye feltet i dokumentet ved å bruke $ addtoset -operatøren i Update () -metoden. La oss få følgende MongoDB -spørring. Vi har angitt oppdateringsmetoden der uttrykket ““ _id ”: 2” er gitt for å matche det aktuelle dokumentet. Deretter tildelte vi $ addtoset -operatøren til å legge til det nye feltet sammen med den nye verdien. Her har vi lagt til array -feltet “Lærer” som ikke eksisterer i dokumentene til samlingen “Courses”. "Lærer" -feltet er tildelt med en rekke lærernes navn.
db.Kurs.Oppdater(
"_id": 2,
$ addToset: "lærere": ["Mr Sam", "MS Alice"]
)
"ModifiedCount: 1" i følgende utdata viser at dokumentet oppdateres med det nye feltet "Lærere" og matriseverdiene.
Anerkjent: sant,
innsats: null,
MatchedCount: 1,
ModifiedCount: 1,
UPSERTEDCOUNT: 0
Når dokumentene er sjekket, dukket det opp med de nye oppdateringsresultatene som følger:
_id: 2,
Felt: 'CS',
Kurs: ['Python', 'Networking', 'Computing', 'Accounts'],
Credithours: [8, 4, 2, 7, 3],
Lærere: [['Mr Sam', 'MS Alice']]
Eksempel nr. 3: Spørring av $ addtoset -operatøren i MongoDB for å legge til en matrise i den eksisterende matrisen
I tillegg kan vi legge til en helt ny matrise til den allerede nåværende matrisen ved hjelp av $ addtoset -operatøren. Hele matrisen blir lagt til som en egen matrise. Her har vi gitt et spørsmål til denne uttalelsen. Vi har en oppdatering () -metode som vi har tildelt en tilstand “_id”: 3 som første parameter. Så dokumentet med "_id" -nummeret "3" vil bli matchet med oppdateringsbetingelsen, og deretter fortsetter neste parameter. Neste parameter for Update () -metoden er “$ addtoset” -metoden for å legge arrayen til den eksisterende matrisen. Vi har spesifisert matrisen “[3, 1, 2]” til feltet “Credithours”. Denne matrisen vil bli lagt til som en egen matrise innen den eksisterende rekke feltet "Credithours".
db.Kurs.Oppdater(
"_id": 3,
$ addToset: "credithours": [3, 1, 2]
)
Følgende informasjon indikerer at matrisen legges til i den nåværende matrisen:
Anerkjent: sant,
innsats: null,
MatchedCount: 1,
ModifiedCount: 1,
UPSERTEDCOUNT: 0
Dokumentet som vises nedenfor er oppdatert med den nye modifiseringen vi har gjort.
_id: 3,
Felt: 'Se',
Kurs: ['Data Science', 'Python', 'IBM'],
Credithours: [2, 9, 5, [3, 1, 2]]
Eksempel 4: Spørring av $ AddToset -operatøren i MongoDB for å legge til flere verdier
$ AddToset gjør det mulig for oss å legge til mer enn en verdi samtidig i en matrise ved å ta $ hver operatør som en parameter. $ Hver operatør er ansatt for å legge til flere oppføringer til en medfølgende matrise. Her har vi gitt et spørsmål der vi må tilfredsstille tilstanden ““ _id ”: 2” av oppdateringen () -metoden. Deretter har vi $ addtoset -operatøren der vi har ansatt $ hver operatør for å legge til de to verdiene “7” og “3” i feltet “Credithours”.
db.Kurs.oppdatering ("_id": 2, $ addToset: "credithours": $ hver: [7,3]);
Ovennevnte spørring som ble utført, viste bekreftelsesutgangen som indikerer at verdiene er satt inn i det matchede dokumentet.
Anerkjent: sant,
innsats: null,
MatchedCount: 1,
ModifiedCount: 1,
UPSERTEDCOUNT: 0
De to matriseelementene “7” og “3” er lagt i array -feltet “Credithours”.
_id: 2,
Felt: 'CS',
Kurs: ['Python', 'Networking', 'Computing', 'Accounts'],
Credithours: [8, 4, 2, 7, 3]
Eksempel 5: Spørring av $ AddToset -operatøren i MongoDB for å legge til den eksisterende verdien
Når matriseverdien allerede er til stede, prøver vi å sette inn den verdien igjen i feltet, så gjør $ addsetto -operatøren ingenting. For å si det på en annen måte, tilfører $ addtoset bare en verdi hvis man ikke allerede eksisterer. Der har vi gitt en spørring i skallet til MongoDB der vi benyttet Update () -metoden. Inne i Update () -metoden har vi gitt betingelsen om at dokumentet har “_id” lik “1”. Etter det kalte vi $ AddToset -operatøren som tar feltet "kurs" med "Addition" -parameterverdien "Database". "Databasen" eksisterer allerede i det spesifiserte dokumentet slik at $ AddToset -operatøren ikke vil oppdatere denne verdien.
db.Kurs.Oppdater(
_id: 1,
$ addToset: "kurs": "database"
)
Vi kan se at alternativet "ModifiedCount" har en "0" -verdi som viser at dokumentet ikke er endret.
Anerkjent: sant,
innsats: null,
MatchedCount: 1,
ModifiedCount: 0,
UPSERTEDCOUNT: 0
Det matchede dokumentet blir også sjekket nedenfor for å vise at allerede eksisterende verdier ikke kan legges til igjen av $ AddToset -operatøren.
_id: 1,
Felt: 'Det',
Kurs: ['Web Development', 'Database', 'Python'],
Credithours: [5, 2, 7, 3]
Konklusjon
Artikkelen handler om diskusjonen om MongoDB $ addtoset -operatøren. Vi har sett $ AddToset -operasjonen i MongoDB -oppdateringsspørsmålet. Det første eksemplet er å $ addToset -operatøren legge til den unike verdien i rekke dokumentet. Vi har da lagt til ikke-eksistensfeltet med $ addtoset-operatøren. Den nye matrisen er også lagt til den allerede spesifiserte matrisen. Etter dette la vi opp matrisen med flere oppføringer, og så forsøkte vi å sette inn duplikatverdien i matrisen med $ AddToset -operatøren.