MongoDB $ GT $ GTE $ LT $ LTE -operatører

MongoDB $ GT $ GTE $ LT $ LTE -operatører

MongoDB støtter en rekke spørringsoperatører for å søke og filtrere dokumenter i en samling. "GT", "GTE", "LT" og "LTE" -operatørene brukes til å utføre sammenligningsspørsmål på felt. "GT" (større enn) operatør returnerer dokumenter der det spesifiserte feltet er større enn den spesifiserte verdien mens "GTE" (større enn eller lik) operatøren returnerer dokumenter der det spesifiserte feltet er større enn eller lik den spesifiserte verdien. På den annen side returnerer "LT" (mindre enn) operatørdokumenter der det spesifiserte feltet er mindre enn den spesifiserte verdien og "LTE" (mindre enn eller lik) operatøren returnerer dokumenter der det spesifiserte feltet er mindre enn eller lik til den spesifiserte verdien. Det er liten forskjell i alle disse operatørene, men metoden for å bruke dem i MongoDB er ganske lik. La oss diskutere det i denne guiden.

La oss si, du har alle nyinnsatte poster over "Dummy" -samlingen i din for øyeblikket benyttet database, som totalt er 5 poster med unike "_id", "by" og "telle" -felt.

Test> DB.Dummy.finne()
[
_id: ObjectId ("63c8a1f94ff07039aa6cdf6b"), by: 'Texas', telle: 5,
_id: ObjectId ("63c8a1f94ff07039aa6cdf6c"), by: 'Los Angeles', telle: 2,
_ID: ObjectId ("63c8a1f94ff07039aa6cdf6d"), by: 'Italia', count: null,
_id: ObjectId ("63c8a1f94ff07039aa6cdf6e"), by: 'Istanbul', telle: 8,
_id: ObjectId ("63c8a1f94ff07039aa6cdf6f"), by: 'Delhi', telle: 7
]

Eksempel # 01: $ GT -operatør

"GT" -operatøren vil bli brukt til å angi eller oppdatere verdien av et bestemt felt i en samling for en enkelt post. For dette må du utføre "UpdateOne" -funksjonen til MongoDB med "GT" -operatøren som er satt for et bestemt felt. I vårt tilfelle har vi brukt oppdateringen bare på poster med større enn "3" -verdien i "tellende" felt. "Set" -operatøren brukes til å legge til et nytt "DESC" -felt med verdien "største by i verden" for alle disse postene som har en "telling" -verdi større enn "3". Bare 1 post er oppdatert fordi vi har prøvd "UpdateOne" -instruksjonen.

Test> DB.Dummy.UpdateOne ("Count": $ gt: 3, $ set: "desc": "største by i verden")

Anerkjent: sant,
innsats: null,
MatchedCount: 1,
ModifiedCount: 1,
UPSERTEDCOUNT: 0

Den første posten av "Dummy" -samlingen er bare oppdatert i henhold til utførelsesresultatet av "Finn" -funksjonen. "Desc" -feltet legges til posten med bynavnet "Texas".

Test> DB.Dummy.finn (count: $ gt: 3)
[
_id: ObjectId ("63c8a1f94ff07039aa6cdf6b"), by: 'Texas', Count: 5, Desc: 'Største by i verden',
_id: ObjectId ("63c8a1f94ff07039aa6cdf6e"), by: 'Istanbul', telle: 8,
_id: ObjectId ("63c8a1f94ff07039aa6cdf6f"), by: 'Delhi', telle: 7
]

La oss bruke UpdateMany () -funksjonen i stedet for UpdateOne () for å oppdatere alle postene til "Dummy" -samlingen med "Count" -feltverdiene større enn "3". Kommandoen nedenfor har blitt brukt til dette formålet, og vi har erkjennelsen.

Test> DB.Dummy.Updatemany (count: $ gt: 3, $ set: "desc": "største by i verden")

Anerkjent: sant,
innsats: null,
MatchedCount: 3,
ModifiedCount: 2,
UPSERTEDCOUNT: 0

Nå, etter å ha kjørt "Finn" -funksjonsinstruksjonen, nok en gang med "GT" -operatøren, satt på "Count" -feltet der verdien er større enn "3", har vi fått den viste belowutgangen. Alle de tre postene med en "telling" -verdi større enn "3" har nå også "DESC" -feltet.

Test> DB.Dummy.finn (count: $ gt: 3)
[
_id: ObjectId ("63c8a1f94ff07039aa6cdf6b"), by: 'Texas', Count: 5, Desc: 'Største by i verden',
_ID: ObjectId ("63c8a1f94ff07039aa6cdf6e"), by: 'Istanbul', Count: 8, desc: 'største by i verden',
_id: ObjectId ("63c8a1f94ff07039aa6cdf6f"), by: 'Delhi', Count: 7, Desc: 'Største by i verden',
]

Eksempel # 02: $ GTE -operatør

I dette eksemplet vil vi diskutere bruken av "GTE" -operatøren av MongoDB: større enn eller lik. Det vil bli brukt til å søke eller oppdatere postene som er større eller lik en bestemt verdi. UpdateMany () -funksjonen brukes til å oppdatere mange dokumenter i en MongoDB -samling kalt “Dummy”, der verdien av "Count" -feltet er større enn eller lik 4. Tellingen er større enn "4". "Set" -operatøren vil sette verdien av "Count" -feltet til 2 for alle de matchede dokumentene. Oppdateringen er utført veldig jevnt.

Test> DB.Dummy.Updatemany (count: $ gte: 4, $ set: "count": 2)

Anerkjent: sant,
innsats: null,
MatchedCount: 3,
ModifiedCount: 3,
UPSERTEDCOUNT: 0

Etter å ha vist de oppdaterte postene til "Dummy" -samlingen ved hjelp av "Finn" -funksjonen, har vi resultatet nedenfor. Den viser at alle postene nå har verdien “2” i “Count” -feltet bortsett fra posten “3” der tellingen allerede er null og ikke oppfyller “GTE” operatørens tilstand i.e. Som spørringen ovenfor illustrert.

Test> DB.Dummy.finne()
[
°,
_id: ObjectId ("63c8a1f94ff07039aa6cdf6c"), by: 'Los Angeles', telle: 2,
_ID: ObjectId ("63c8a1f94ff07039aa6cdf6d"), by: 'Italia', count: null,
_id: ObjectId ("63c8a1f94ff07039aa6cdf6e"), by: 'Istanbul', Count: 2, desc: 'største by i verden',
_id: ObjectId ("63c8a1f94ff07039aa6cdf6f"), by: 'Delhi', Count: 2, Desc: 'Største by i verden'
]

Eksempel # 03: $ LT -operatør

Denne gangen skal vi bruke "LT" -operatøren av MongoDB for å oppdatere poster. Kommandoen under oppdateringer mange dokumenter i MongoDB ved å bruke UpdateMany () -funksjonen igjen, der verdien av "Count" -feltet er mindre enn 4. "Set" -operatøren setter verdien av "Count" -feltet til 3 og verdien av "DESC" -feltet til "mellomstor by" for alle de matchede dokumentene. Erkjennelsen viser at totalt 4 poster er oppdatert og 1 som blir uendret må ha en "null" -verdi på sitt "telling" -felt.

Test> DB.Dummy.Updatemany (count: $ lt: 4, $ set: "count": 3, "desc": "mellomstor by")

Anerkjent: sant,
innsats: null,
MatchedCount: 4,
ModifiedCount: 4,
UPSERTEDCOUNT: 0

Etter å ha søkt på postene til "Dummy" -samlingen der tellefeltet har alle verdiene mindre enn "4" via "LT" -operatøren, returnerer den de 4 postene som alle har felt "Count" satt til "3" og felt "DESC ”Sett til“ mellomstor by ”som følger:

Test> DB.Dummy.finn (count: $ lt: 4)
[°,
°,
° Desc: 'mellomstor by']

Eksempel # 04: $ LTE -operatør

Med utgangspunkt i spørringen som er vedlagt nedenfor, har vi prøvd "updateMany" -funksjonen med filteret count: $ lte: null. Det samsvarer med alle dokumenter der verdien av "count" -feltet er mindre enn eller lik null. I vårt tilfelle er det bare en post med en "null" -verdi i feltet "Count".I det andre argumentet setter "SET" -operatøren verdien av "Count" -feltet til 10 og verdien av "DESC" -feltet til "vakreste og overfylte" for alle matchede dokumenter. Kommandoen nedenfor oppdaterer en enkelt post i en "dummy" -samling, der verdien av "count" -feltet er mindre enn eller lik null.

Test> DB.Dummy.updateMany (count: $ lte: null, $ set: "count": 10, "desc": "vakreste og overfylt")

Anerkjent: sant,
innsats: null,
MatchedCount: 1,
ModifiedCount: 1,
UPSERTEDCOUNT: 0

Når du søker etter posten med en "telling" feltverdi større enn "8", returnerer den en enkelt post som har en "null" -verdi tidligere.

Test> DB.Dummy.finn (count: $ gt: 8)
[_ID: ObjectId ("63c8a1f94ff07039aa6cdf6d"), by: 'Italia', count: 10, desc: 'vakreste og overfylt']]

Konklusjon

Denne artikkelen dekker detaljene i formålet med å bruke GT-, GTE-, LT- og LTE -operatørene i MongoDB. Det første eksemplet dekker "GT" -operatøren og det andre dekker "GTE" -operatøren ved hjelp av MongoDB -instruksjoner. Mens de to siste illustrasjonene dekker bruken av "LT" og "LTE" -operatørene i detalj ved hjelp av UpdateMany () -funksjonen og "SET" -operatøren.