MongoDB FindOne -spørring

MongoDB FindOne -spørring
Samlingene i MongoDB ligner på et bord i en RDBMS. Her henter vi et bestemt dokument fra MongoDB -samlingen med FindOne () -metoden. FindOne () -metoden er en innebygd metode for MongoDB som returnerer et enkelt dokument når de definerte spørringskriteriene oppnås. Hvis mer enn ett dokument samsvarer med spørringen, returneres det første i den naturlige rekkefølgen av FindOne () -metoden. Med enkle ord er rekkefølgen på dokumenter den samme som innsettingsrekkefølge for dokumenter i samlingen.

Hvordan bruke FindOne -spørringen i MongoDB

FindOne () -metoden returnerer bare enkeltdokumentet med det gitte samlingsnavnet når den kjøres i MongoDB -skallet. Videre tar FindOne () -metoden også parameteren som inkluderer det betingede uttrykket og projeksjonen. Den parametriske verdien er diskutert i følgende løpseksempel. Før dette legger vi inn dokumentene i "Mobiles" -samlingen. Vi bruker Insertmany -spørringen for å legge til dokumentene i vår "mobil" -samling. Innsettingsspørsmålet er gitt i følgende:

db.Mobil.INSERTMANY ([

_id: 1,
Merke: "Oppo",
Navn: "Oppo F21 Pro",
Garanti: "5",
Pris: 51000
,

_id: 2,
Merke: "Samsung",
Navn: "Samsung A12",
Garanti: "2",
Pris: 45000
,

_id: 3,
Merke: "OnePlus",
Navn: "OnePlus 8 Pro",
Garanti: "6",
Pris: 900000
,

_id: 4,
Merke: "Infinix",
Navn: "Infinix note 7",
Garanti: "1",
Pris: 67000
,

_id: 5,
Merke: "Vivo",
Navn: "Vivo S1",
Garanti: "3",
Pris: 21600

])

Resultatet, som sees i følgende bilde, viser at dokumentene legges til "Mobiles" -samlingen vellykket. Nå bruker vi denne "Mobiles" -prøven for å vise arbeidet med FindOne -spørringen for å hente enkeltdokumentet.

Eksempel 1: Bruke FindOne -spørringen i MongoDB

Her påkaller vi FindOne () -metoden med de tomme parametrene bare for å se arbeidet med FindOne () -metoden uten noen parametrisk verdi. Vi har en spørring der "mobil" -samlingen er gitt og FindOne () -metoden kalles "Mobile" -samlingen.

db.Mobil.Finn én()

Spørringen om FindOne (), etter utførelse, returnerer singelen og det første dokumentet i "Mobile" -samlingen fordi det ikke er noe tilstand som er satt til å skaffe det spesifikke dokumentet. Derfor, ved å utføre FindOne () -metoden med tomme spørringsspesifikasjoner, returnerer den alltid samlingens første dokument.

Eksempel 2: Bruke FindOne -spørringen i MongoDB ved å gi feltet

Her bruker vi FindOne () -metoden med en spørringsparameter. Spørringsparameteren er definert som “Navn:“ Vivo S1 ”” som finner dokumentet hvis "navn" -feltet er lik "Viva S1" -verdien. Hvis to eller flere dokumenter med de samme resultatene blir hentet, blir bare det første matchede dokumentet hentet av FindOne () -metoden. Vi har følgende FindOne () -metode med spørringsspesifikasjonen:

db.Mobil.FindOne (navn: "Vivo S1")

Siden vi bare har ett dokument hvis "Navn" -felt inneholder "Vivo S1" -verdien i "Mobile" -samlingen som blir sett på som et resulterende dokument i følgende bilde:

Eksempel 3: Bruke FindOne-spørringen i MongoDB ved å gi feltverdien som ikke eksisterer

Når dokumentet ikke samsvarer med de gitte spørringsspesifikasjonene, returnerer FindOne () -metoden “Null” -verdien i utgangen. Her gir vi en spørring i FindOne () -metoden der vi setter "_id: 6" -kriteriene. _Id -feltet er tilordnet med en verdi av “6” som ikke er inkludert i vår MongoDB “Mobiles” -samling.

db.Mobil.FindOne (_ id: 6)

Som vi kan se, oppnås nullstrengen etter å ha kjørt forrige FindOne -spørring. Dette er fordi “6” _ID -verdien samsvarer med noen av “Mobiles” -dokumentene.

Eksempel 4: Bruke FindOne -spørringen i MongoDB ved å gi projeksjonen

FindOne () -metoden genererer et dokument som bare inkluderer projeksjonsfeltene hvis et projeksjonsargument er spesifisert. Projeksjonsparameteren her viser feltene som er inkludert. Vi har følgende FindOne -spørring der vi angir “merkevaren:“ samsung ”” -kriterier og deretter angi projeksjonsparameteren som inkluderer "Price: 1" -uttrykket. FindOne () -metoden samsvarer først med dokumentet med de gitte kriteriene og viser deretter "pris" -feltet i det aktuelle dokumentet fordi projeksjonen er satt over "pris" -feltet. "Prisen" er gitt med en verdi "1" og verdien "1" er betegnet som sann i projeksjonen av MongoDB.

db.Mobil.FindOne (merkevare: "Samsung", Price: 1)

FindOne -spørringen samsvarer med dokumentet hvis "merke" har "Samsung" -verdien og viser dokumentfeltet "Pris" i utdataene. Som standard er "_id" -feltet det eneste feltet som alltid vises mens du utfører FindOne () -metoden.

Eksempel 5: Bruke FindOne -spørringen i MongoDB ved å gi projeksjonen for å ekskludere feltene

I eksemplet på forrige FindOne () bruker vi projeksjonsparameteren innen FindOne () -metoden for å inkludere de spesifikke feltene. Nå bruker vi FindOne () -metoden for å identifisere dokumentet med de matchede kriteriene. Deretter utelukker projeksjonsparameteren det aktuelle feltet i det dokumentet. Denne forklaringen kan lett forstås med følgende spørringskommando. Vi setter FindOne () -metoden med “merket:“ oppp ” valgkriterier. FindOne () -metoden samsvarer med dokumentet fra "Mobiles" -samlingen hvis "merke" -verdien er "Oppo". Ekskludere "_id", "navn" og "pris" fra det matchede dokumentet fordi projeksjonsverdien til disse feltene er tildelt med "0" -verdien som betyr falsk.

db.Mobil.Finn én(
Brand: "Oppo",
_id: 0, navn: 0, pris: 0
)

Der har vi et dokument som blir hentet som en utdata fra FindOne -spørringen hvis "merke" og "garanti" -felt bare vises og alle de andre feltene er ekskludert.

Eksempel 6: Bruke FindOne -spørringen i MongoDB ved å gi den betingede operatøren

Dette eksemplet er FindOne () -metoden med spørringsspesifikasjonene som betinget “$ eller” -operatør. FindOne () -metoden samsvarer bare med dokumentet som oppfyller kravet til $ eller operatør. La oss ha et spørsmål om dette. Vi har en følgende spørring der vi distribuerer FindOne () -metoden og setter deretter $ eller operatøren inni den. $ Eller operatøren inneholder de to uttrykkene - “Navn: OnePlus 8 Pro” og “Garanti: $ gt: 3”. "Navn" -verdien skal være "OnePlus 8 Pro" og "garanti" -verdien skal være større enn verdien av "3". Fra disse uttrykkene skal et av uttrykkene være sant som kreves av $ eller operatøren.

db.Mobil.Finn én(

$ eller: [
Navn: "OnePlus 8 Pro",
Garanti: $ gt: 3]

)

Innenfor utgangen får vi enkeltdokumentet fra FindOne () som tilfredsstiller både uttrykket til $ eller operatøren.

Konklusjon

Artikkelens mål er å utforske FindOne () -metoden i MongoDB med kodeimplementeringen. Her så vi arbeidet med FindOne () -metoden uten spørsmålsspesifikasjoner og med spørringsspesifikasjonene. Deretter brukte vi FindOne () -metoden for å bruke projeksjonsparameteren for å vise de bestemte feltene. Etter det fant vi dokumentet med FindOne () -metoden som tar den betingede operatøren som valgkriterier.