I dette beskrivende innlegget har vi gitt et innblikk i bruken av $ der operatør i sammenheng med MongoDB.
Hvordan fungerer $ der i MongoDB
Det blir lagt merke til at $ der operatøren brukes sjelden sammenlignet med andre standardoperatører av MongoDB som $ GT, $ LT, $ In og $ nin.
Som nevnt tidligere, $ der operatøren bare jobber for JS-baserte strenger eller dens funksjoner og syntaks for å bruke $ der operatøren er nevnt nedenfor:
$ hvor:Det observeres at $ der operatøren ikke kan utføres med få standardfunksjoner av mongoDB som db. Operatøren $, sammen med kartreduserende operasjoner i MongoDB, støtter flere JavaScript-funksjoner, og dermed kan de ikke brukes globalt
Hvordan bruke $ hvor i mongodb
Følgende forekomster av MongoDB brukes i denne guiden:
Database: Databasen som brukes her heter “Linuxhint“.
Samlingsnavn: Samlingen som utøves i denne artikkelen heter “karakterer“.
Og dokumentene inneholdt av “karakterer”Samlingen vises nedenfor:
> DB.personale.finne().ganske()Merk: C1, C2, C3, C4 antas som kurs -ID -er i opsjonen ovenfor.
Eksempel 1: Grunnleggende bruk av $ hvor operatøren
Før du får detaljer, må du huske at de to nøkkelordene, enten "dette”Eller“obj”Brukes til å referere til dokumenter i JS -funksjon eller JS -uttrykk.
Med henvisning til dokumentene i “karakterer”Samling:
Kommando 1: Kommandoen skrevet nedenfor vil søke etter dokumenter og vil bare vise de som har de samme verdiene i forskjellige felt:
Som du kan sjekke at utgangen bare inneholder "en”Dokument der verdier av“C1”Og“C2" kamp.
> DB.karakterer.finn ($ hvor: "dette.C1 == dette.C2 ").ganske()Kommando 2: Den samme utgangen (som i Kommando 1) kan oppnås ved å utstede kommandoen nedenfor i Mongo Shell. Her, "obj'Nøkkelord brukes i stedet for "dette“.
> DB.karakterer.finn ($ hvor: "obj.C1 "==" obj.C2 ").ganske()Kommando 3: Du kan også bruke $ der operatøren som vi har utført i kommandoen nedenfor. I følgende kommando vil en funksjon () returnere dokumentene som er oppnådd ved å bruke “obj”Og“dette”Nøkkelord, verdien av“C1”Og“C3" fyrstikker.
> DB.karakterer.finn ($ hvor: funksjon () return (dette.C1 == dette.C3)).ganske()Kommando 4: Bruken av JS -funksjon () med $ hvor operatøren også kan oppnås ved å bruke "obj”Søkeord i stedet for“dette“. For dette kan du utføre følgende kommando:
> DB.karakterer.finn ($ hvor: funksjon () return obj.C1 == obj.C3).ganske()Eksempel 2: $ der handlinger uten å bruke det i kommando
Hvis kommandoen din bare utfører applikasjonen av $ der operatøren, kan du bruke kommandoen uten å spesifisere $ der nøkkelordet i kommandoen. Eksempelkommandoen i en situasjon som disse er angitt nedenfor:
> DB.karakterer.finn ("dette.C1 == dette.C2 ").ganske()Eller "obj”Søkeord kan også brukes i stedet for“dette”I kommandoen ovenfor.
> DB.karakterer.finn ("obj.C1 == obj.C2 ").ganske()Eksempel 3: Bruke $ hvor med standard MongoDB -operatører
$ Der operatøren kan brukes sammen med flere andre operatører av MongoDB. For eksempel i den nedenfor nevnte kommandoen har vi brukt mindre enn (<) operator with $ hvor operatør. Kommandoen skrevet nedenfor vil se etter betingelser for begge operatørene og deretter ethvert dokument tilfredsstillende heller “==” eller “||”Tilstand vises i utgangen.
> DB.karakterer.finn ("dette.POS1 == dette.Pos2 || Dette.POS1 < this.pos2").pretty()Det observeres fra å jobbe med $ der operatøren som søker i hoveddelen av dokumenter kan bli tidkrevende med $ hvor operatør fordi MongoDB utfører $ hvor operatør etter en hvilken som helst annen standardoperatør som ble brukt i spørringen.
Konklusjon
MongoDB oppdaterte ofte sine versjoner i det siste, og grunnen var å forbedre ytelsen og effekten av enhver MongoDB -kommando eller metode, eller operatør. I MongoDB, $ der operatøren kan brukes til å matche feltene ved hjelp av JS -uttrykk eller JS -funksjon. I denne detaljerte guiden har vi gitt bruken av $ der operatøren i MongoDB. Etter detaljert forskning og datainnsamling, kom vi til det punktet at alternativene til $ der operatøren skulle foretrekkes, da $ der operatøren søker etter hele samlingen før du gir deg utdataene.