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 ([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 (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.