Mongodb Regex Match -spørsmål

Mongodb Regex Match -spørsmål
Noen ganger vet vi ikke verdien som er knyttet til feltet i dokumentet. Derfor brukte vi MongoDB -reguleringsuttrykket for å bestemme de spesifikke kampene for dokumentet. Regelmessige uttrykk er et viktig element i programmering som analyserer forskjellige samlinger av mønstre, hovedsakelig strengene. Vi bruker $ Regex -operatøren som et vanlig uttrykk i MongoDB for å identifisere et mønster i en streng. Regelmessige uttrykksfunksjoner gir $ Regex -operatøren for å matche et mønster av strenger i spørsmål.

Hvordan samsvarer Regex spørsmål i MongoDB?

$ Regex -operatøren lar oss søke etter en spesifikk streng i en spesifisert samling. $ Regex -operatøren lar regelmessige uttrykk brukes til å matche mønsterstrenger i spørsmål. MongoDB gir strukturen til $ regex -operatøren på denne måten: : $ regex: 'mønster', $ alternativer: '' der nøkkelen representerer kolonnens navn som $ regex er gitt for å matche mønsterskjemaet dokumentet. "$ Alternativer" er valgfritt i den mønster-matchende spørringen, og den inneholder forskjellige alternativer som har forskjellige funksjonaliteter. Vi vil bruke noen av alternativene med eksemplet spørsmål. Her har vi brukt databasen “Lærere” som brukes til å utføre $ Regex -operasjonen. Vi har brukt InsertMany -spørringen for å plassere fire dokumenter som inneholder de tre feltene: “Navn”, “Kurs” og “klasser”. Spørringen om å sette inn dokumenter i samlingen “Lærere” av MongoDB er gitt som følger:

db.Lærere.INSERTMANY ([

"Navn": "Paul",
"Kurs": "Webutvikling",
"Klasser": ["It", "CS", "SE"]
,

"Navn": "Peter",
"Kurs": "kontoer",
"Klasser": ["SE", "BBA", "It"]
,

"Navn": "Katherin",
"Kurs": "Calculus",
"Klasser": ["BBA", "CS", "IT"]
,

"Navn": "Daniel",
"Kurs": "Python",
"Klasser": ["It", "CS"]

])

Nå settes alle dokumentene inn i "lærere" -samlingen. Vi kan enkelt bruke feltene til mønstermatching med $ Regex -operatøren.

Eksempel 1: Bruke $ Regex -operatøren i MongoDB for å matche verdien.

Her bruker vi $ Regex -operatøren for å matche verdien av posisjonsnøkkelen. Vi har gitt feltet "navn" i Find () -metoden. Deretter har vi gitt det vanlige uttrykket “$ regex:“^Paul ”” der $ regex er ansatt for å matche verdien “Paul” for feltet “Navn”. Strukturen til $ Regex -spørringen er gitt nedenfor. Foreach () -metoden er utstyrt med parameteren “Printjson” som viser hvert dokument gitt av $ Regex Operator -spørringen mer effektivt.

db.Lærere.finn (navn: $ regex: "^Paul").Foreach (Printjson)

Dokumentet hvis felt "navn" er matchet med strengen "Paul" blir hentet i følgende bilde av skallet:

Eksempel 2: Bruke $ Regex -operatøren i MongoDB som starter med det spesifiserte tegnet.

Noen ganger har vi tenkt å identifisere feltet som begynner med den spesifikke karakteren, deretter brukes $ Regex til å sette utvalgskriteriene. Her har vi gitt en enkel spørring der vi har satt Find () -metoden som tar feltet "Navn". Deretter spesifiserte vi det vanlige uttrykket “Navn: $ regex:“ p ”” til det feltet for mønstermatching. $ Regex -operatøren stemte bare overens med de navnene på lærerne som starter med karakteren “P” i dokumentene. Dokumentet vil bli skrevet ut i JSON -formatet etter foreach () -metoden.

db.Lærere.finn (navn: $ regex: "p")).Foreach (Printjson)

Vi har bare to dokumenter som er skrevet ut nedenfor som samsvarer med det spesifiserte mønsteret til $ Regex -operatøren om at tegnet skal begynne med “P”.

Eksempel nr. 3: Bruke $ Regex -operatøren i MongoDB som ender med den nødvendige karakteren.

Som i forrige eksempel på spørringen fra $ Regex -operatøren, har vi hentet dokumentene hvis første karakter begynner med tegnet som er spesifisert til $ Regex -uttrykket. Her hentet vi dokumentet hvis felt "navn" ender med karakteren "L". “$” -Symbolet brukes med karakteren “L” som sikrer at strengen avsluttes med denne spesifikke karakteren. Det vanlige mønsteret “$ regex:“ l $ ”” er tilordnet $ regex -operatøren som søker etter akkurat dette mønsteret fra dokumentet.

db.Lærere.finn (navn: $ regex: "l $")).ganske()

Når mønstermatchende spørring blir utført, viser det bare de dokumentene hvis lærerens "navn" -kolonne ender opp med tegnet "L". Utgangsdokumentene vises i følgende bilde av MongoDB -skallet:

Eksempel 4: Bruke $ Regex -operatøren i MongoDB med operatøren $ Options.

$ Regex -operatøren ga også forskjellige alternativer som kan angis ved hjelp av $ opsjonsoperatøren. I dette eksemplet brukte vi et vanlig uttrykk i en saksfølsom omstendighet der "i" -parameteren brukes i $ Options-operatøren. $ Alternativer Verdi “I” samsvarer med øvre og nedre alfabetmønster i strengen. Forespørselsstrukturen er gitt der posisjonsfeltet "kurs" tildeles et uttrykk for det vanlige mønsteret som samsvarer for de saksfølsomme scenariene. Uttrykket “$ regex:“ python ”, $ opsjoner: 'i'" søker etter strengen “Python”, og alternativet $ brukes til å matche det nedre og overkvelden i strengen “Python”.

db.Lærere.finn (kurs: $ regex: "python", $ opsjoner: 'i').ganske()

Resultatet viste dokumentet hvis felt "kurs" omfatter den saken-ufølsomme strengen "Python".

Eksempel 5: Bruke $ Regex -operatøren i MongoDB som samsvarer med verdien fra en matrise.

Prinsippet om det vanlige uttrykket kan også implementeres for matriser i dokumentene. Det vanlige uttrykket er essensielt når vi takler taggene. Her har vi et vanlig uttrykksspørsmål for å matche verdien av taggen. Vi har gitt et uttrykk klasser: $ regex: “it” til Find () -metoden. Uttrykket er utstyrt med feltet "klasser" som er distribuert med det vanlige uttrykket. $ Regex -operatøren brukes på det vanlige uttrykket med mønsteret “IT”. $ Regex -operatøren søker etter mønsteret “It” fra det matrisefeltet “Klasser”.

db.Lærere.finn (klasser: $ regex: "it"))

$ Regex -operatøren returnerte alle dokumentene nedenfor hvis matriseverdier inneholdt mønsteret “IT”.

Eksempel 6: Bruke $ Regex -operatøren i MongoDB innen aggregeringsmetoden.

Aggregeringsmetoden inneholder bare spørringsoperatøren $ Regex sammen med $ Match Stage. Så funksjonaliteten til $ Regex utføres av $ regexmatch -operatøren. Her har vi kalt Aggregate () -metoden på "lærere" -samlingen. Deretter har vi brukt $ addfields som tar attributtet “resultater” for å generere utgangen som returneres fra det spesifiserte uttrykket. Uttrykket “$ regexMatch: input:“ $ course ”, regex:/accounts/” er gitt der "$ regexmatch" -operatøren brukes til å legge inn feltet "$ kurs" som matchet "regex" -mønsteret "/kontoer /”.

db.Lærere.aggregat (
[$ addFields: results: $ regexMatch: input: "$ kurs", regex: / kontoer /]))

De dokumentene hvis kursnavn er kontoer, sendes ut med den virkelige verdien, og de gjenværende dokumentresultatene vises med den falske verdien.

Konklusjon

$ Regex -spørsmålene brukes til å finne mønstre og tegn i en streng. Her har vi undersøkt det vanlige uttrykket for mønstermatching ved å bruke $ Regex -operatøren i utvalgskriteriene. Videre har vi $ -alternativene som også brukes med $ regex i det vanlige uttrykket for å matche mønsteret. Deretter utførte vi det vanlige uttrykket på matrisen og for aggregeringsteknikken med $ regexmatch -trinnet.