MongoDB i operatøren

MongoDB i operatøren
I dette innlegget vil vi diskutere hvordan du bruker $ i operatøren i MongoDB -databaser. Operatøren $ lar oss velge dokumenter der verdien av et gitt felt tilsvarer enhver verdi i en gitt matrise.

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")
db.butikk.INSERTMANY ([
_id: 0, "Product_name": "Apple MacBook Air", "Quantity": 100, "Price": 1199, "kategori": ["Tech", "Apple"],
°,
°,
_id: 3, "Product_name": "Samsung Z Fold 4", "Quantity": 400, "Price": 1799, "kategori": ["Tech", "Samsung"],
_id: 4, "Produktnavn": "Sony WH-100XM5", "Mengde": 800, "Pris": 400, "kategori": ["Tech", "Sony"],
])

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:


"_id": 0.0,
"Produktnavn": "Apple MacBook Air",
"Mengde": 100.0,
"Pris": 1199.0,
"Kategori": [
"Tech",
"eple"
]


"_id": 2.0,
"Produktnavn": "Apple iPad Air",
"Mengde": 550.0,
"Pris": 599.0,
"Kategori": [
"Tech",
"eple"
]


"_id": 3.0,
"Produktnavn": "Samsung Z Fold 4",
"Mengde": 400.0,
"Pris": 1799.0,
"Kategori": [
"Tech",
"Samsung"
]

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"],
$ set: tilgjengelig: falsk
)

Spørringen ovenfor oppdaterer dokumentene der kategorien er lik “Apple” og tilgjengelig status til falsk.

Det resulterende dokumentet skal se ut som vist:


"_id": 0.0,
"Produktnavn": "Apple MacBook Air",
"Mengde": 100.0,
"Pris": 1199.0,
"Kategori": [
"Tech",
"eple"
],
"Tilgjengelig": falsk


"_id": 1.0,
"Produktnavn": "Google Pixel 6A",
"Mengde": 1000.0,
"Pris": 449.0,
"Kategori": [
"Tech",
"Google"
]


"_id": 2.0,
"Produktnavn": "Apple iPad Air",
"Mengde": 550.0,
"Pris": 599.0,
"Kategori": [
"Tech",
"eple"
],
"Tilgjengelig": falsk


"_id": 3.0,
"Produktnavn": "Samsung Z Fold 4",
"Mengde": 400.0,
"Pris": 1799.0,
"Kategori": [
"Tech",
"Samsung"
]


"_id": 4.0,
"Produktnavn": "Sony WH-100XM5",
"Mengde": 800.0,
"Pris": 400.0,
"Kategori": [
"Tech",
"Sony"
]

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!!