I dette innlegget vil vi diskutere hvordan du kan multiplisere verdiene til et gitt felt med et spesifikt nummer ved hjelp av $ MUL -operatøren.
MongoDB $ mul -operatør
$ MU- eller multiplikasjonsoperatøren lar oss multiplisere verdien av et gitt felt med en spesifikk numerisk verdi.
Operatørens syntaks er som vist:
$ mul:: ,…
Det er bra å sikre at målfeltet har numerisk verdi. Ellers mislykkes operatøren hvis den møter en ikke-numerisk verdi.
Du kan også bruke prikknotasjonen for å få tilgang til et felt som ligger i et innebygd dokument eller en matrise.
Hvis det spesifiserte feltet ikke eksisterer i måldokumentet, oppretter operatøren den definerte arkiverte og setter verdien til en null med lignende type som multiplikatornummer.
Det er også godt å huske konverteringsreglene som kan gjelde når du utfører multiplikasjoner på forskjellige typer. Følgende tabell viser de støttede typekonverteringene:
La oss se på et ekte eksempel på hvordan du bruker $ MUL-operatøren.
Eksempelinnsamling og dokumenter
Anta at vi har en samling som inneholder en produktinformasjon som vist:
Test> DB.CreateCollection ("Produkter")
OK: 1
Test> DB.Produkter.INSERTMANY ([
... _id: 1, produktnavn: "Produkt_1", pris: 100, Antall: 78,
... _id: 2, produktnavn: "Produkt_2", pris: 4500, Antall: 344,
... _id: 3, produktnavn: "Produkt_3", pris: 45, Antall: 200
…]);
anerkjent: sant, innsats: '0': 1, '1': 2, '2': 3
Eksempel:
Følgende eksempel viser en enkel operasjon for hvordan du bruker $ MUL -operatøren:
Test> DB.Produkter.UpdateOne (_id: 1, $ mul: pris: 2);
Den forrige spørringen skal multiplisere prisen med 2 og på dokumentet med ID på 1.
Produksjon:
Anerkjent: sant,
innsats: null,
MatchedCount: 1,
ModifiedCount: 1,
UPSERTEDCOUNT: 0
Vi kan finne de matchende dokumentene som følger:
Test> DB.Produkter.finne();
Resulterende dokumenter:
[
_id: 1, produktnavn: 'Produkt_1', pris: 200, Antall: 78,
_id: 2, produktnavn: 'Produkt_2', pris: 4500, Antall: 344,
_id: 3, produktnavn: 'Produkt_3', pris: 45, Antall: 200
]
Vi kan se at dokumentet oppdaterer det første dokumentet som har en pris på 200.
Hvis du ønsker å oppdatere mer enn ett felt, kan du bruke forespørselen som vist på følgende:
Test> DB.Produkter.UpdateOne (_id: 1, $ mul: Price: 2, Qty: 100);
I dette tilfellet oppdaterer spørringen prisen og mengden av det første dokumentet som vist i følgende resultat:
Test> DB.Produkter.finn (_ id: 1);
Resultat:
[_id: 1, produktnavn: 'Produkt_1', pris: 400, Antall: 7800]
Konklusjon
I denne guiden lærte du hvordan du bruker multiplikasjonsoperatøren i MongoDB Shell. Sjekk dokumentene for mer informasjon.