Operatørsyntaks
Følgende uttrykk definerer syntaksen som brukes for $ i operatøren:
Felt: $ in: [,,…]Operatøren sammenligner hver parameter med alle dokumentene i den spesifiserte samlingen. Det er viktig å være oppmerksom på hvordan denne operatøren blir brukt fordi den kan føre til ytelseshits.
MongoDB anbefaler å begrense antall parametere som skal skannes for å unngå betydelige ytelsesproblemer.
Du kan også benytte deg av andre funksjoner som indekser for å hjelpe MongoDB når du bruker $ i operatøren i en stor samling.
Praktisk eksempel
La oss ta en samling med virkelige verdier for å illustrere hvordan vi bruker denne operatøren. Tenk på prøvesamlingen vist nedenfor:
db.CreateCollection ("Shop")Spørringen ovenfor oppretter en samling “butikk” og legger til eksempeldata til den. La oss nå utforske hvordan vi kan bruke $ i operatøren i et slikt dokument.
Bruker $ i operatøren for å finne matchende dokumenter
Eksemplet nedenfor bruker $ i operatøren for å finne alle dokumentene der kategorien er enten "Apple" eller "Samsung".
db.butikk.finn (kategori: $ i: ["Apple", "Samsung"])I dette tilfellet skal spørringen bare returnere dokumentene med verdiene “Apple” eller “Samsung” i kategorien Array.
Et eksempelutgang er som vist:
Bruker $ i operatøren for å oppdatere dokumenter som samsvarer med en spesifikk tilstand
Vi kan også bruke $ i operatøren til å utføre en samlingsoppdatering ved hjelp av UpdateOne () eller UpdateMany () -metoder.
Anta at butikken har gått tom for Apple -enheter og vi ønsker å oppdatere dokumentene i en enkelt spørring, vi kan kjøre en forespørsel som vist:
db.butikk.UpdateMany (kategori: $ in: ["Apple"],Spørringen ovenfor oppdaterer dokumentene der kategorien er lik “Apple” og tilgjengelig status til falsk.
Det resulterende dokumentet skal se ut som vist:
Vi kan se hvilken som helst Apple -oppføring inkluderer et tilgjengelig felt med verdien som er satt til FALSE.
Konklusjon
I dette innlegget utforsket vi $ i operatøren i MongoDB -databaser. Denne operatøren lar oss velge dokumenter hvis feltverdi samsvarer med et gitt sett med verdier i en matrise.
Takk for at du leste!!