MongoDB Regex Match query

MongoDB Regex Match query
A volte, non conosciamo il valore associato al campo nel documento. Quindi, abbiamo usato l'espressione regolare di MongoDB per determinare le corrispondenze specifiche per il documento. Le espressioni regolari sono un elemento importante della programmazione che analizza diverse raccolte di modelli, principalmente le stringhe. Usiamo l'operatore $ regex come espressione regolare in MongoDB per identificare uno schema in una stringa. Le caratteristiche di espressione regolari forniscono l'operatore $ regex per abbinare un modello di stringhe nelle query.

Come fanno le query di regex corrispondono a mongodb?

L'operatore $ regex ci consente di cercare una stringa specifica all'interno di una raccolta specificata. L'operatore $ regex consente di utilizzare espressioni regolari per abbinare le stringhe di pattern nelle query. Il mongoDB fornisce la struttura dell'operatore $ regex in questo modo: : $ regex: 'pattern', $ option il documento. Le "$ opzioni" sono opzionali nella query di abbinamento dei pattern e contiene varie opzioni che hanno funzionalità diverse. Useremo alcune delle opzioni con le query di esempio. Qui, abbiamo usato i "insegnanti" del database che viene utilizzato per eseguire l'operazione $ regex. Abbiamo usato la query InsertMany per posizionare quattro documenti che contengono i tre campi: "Nome", "Corso" e "Classi". La domanda di inserimento di documenti nella collezione "insegnanti" di MongoDB è data come segue:

db.Insegnanti.InsertMany ([

"Nome": "Paul",
"Corso": "Sviluppo web",
"Classi": ["It", "CS", "SE"]
,

"Nome": "Peter",
"Corso": "Account",
"Classi": ["SE", "BBA", "It"]
,

"Nome": "Katherin",
"Corso": "Calcolo",
"Classi": ["BBA", "CS", "It"]
,

"Nome": "Daniel",
"Corso": "Python",
"Classi": ["It", "CS"]

])

Ora, tutti i documenti sono inseriti nella collezione "insegnanti" con successo. Possiamo facilmente usare i campi per la corrispondenza del modello con l'operatore $ regex.

Esempio n. 1: utilizzando l'operatore $ regex in MongoDB per abbinare il valore.

Qui, stiamo usando l'operatore $ regex per abbinare il valore della chiave di posizione. Abbiamo fornito il campo "nome" nel metodo find (). Quindi, abbiamo fornito l'espressione regolare "$ regex:"^Paul "" in cui $ regex è impiegato per abbinare il valore "Paul" per il campo "nome". La struttura della query $ regex è fornita di seguito. Il metodo foreach () è fornito con il parametro "printjson" che mostra ogni documento fornito dalla query dell'operatore $ regex in modo più efficiente.

db.Insegnanti.find (name: $ regex: "^Paul").foreach (printjson)

Il documento il cui campo "nome" è abbinato alla stringa "Paul" viene recuperato nella seguente immagine della shell:

Esempio n. 2: utilizzando l'operatore $ regex in MongoDB che inizia con il carattere specificato.

A volte, intendiamo identificare il campo che inizia con il carattere specifico, quindi $ regex viene utilizzato per impostare i criteri di selezione. Qui, abbiamo dato una semplice domanda in cui abbiamo impostato il metodo find () che prende il campo "nome". Quindi, abbiamo specificato l'espressione regolare "nome: $ regex:" p "" a quel campo per la corrispondenza dei pattern. L'operatore $ Regex ha abbinato solo quei nomi degli insegnanti che iniziano con il personaggio "P" nei documenti. Il documento verrà stampato in formato JSON con il metodo Foreach ().

db.Insegnanti.find (name: $ regex: "p").foreach (printjson)

Di seguito abbiamo solo due documenti stampati che abbinavano il modello specificato dell'operatore $ regex che il personaggio dovrebbe iniziare con "P".

Esempio n. 3: utilizzando l'operatore $ regex in MongoDB che termina con il carattere richiesto.

Come nell'esempio precedente query dell'operatore $ regex, abbiamo recuperato i documenti il ​​cui primo personaggio inizia con il carattere specificato nell'espressione di $ regex. Qui, abbiamo recuperato il documento il cui campo "nome" termina con il personaggio "L". Il simbolo "$" viene usato con il carattere "L" che garantisce che la stringa finisca con questo personaggio specifico. Il modello regolare "$ regex:" l $ "" è assegnato all'operatore $ regex che cerca questo particolare modello dal documento.

db.Insegnanti.find (name: $ regex: "l $").bello()

Quando viene eseguita la query di corrispondenza del modello, visualizza solo quei documenti la cui colonna di "nome" dell'insegnante finisce con il personaggio "L". I documenti di output vengono visualizzati nella seguente immagine della shell Mongodb:

Esempio n. 4: utilizzando l'operatore $ regex in MongoDB con $ Options Operator.

L'operatore $ Regex ha anche fornito diverse opzioni che possono essere impostate utilizzando l'operatore $ options. In questo esempio, abbiamo usato un'espressione regolare in una circostanza sensibile al caso in cui il parametro "I" viene utilizzato nell'operatore $ options. $ opzioni valore "i" corrisponde ai modelli di alfabeto superiore e inferiore nella stringa. La struttura della query viene data in cui il campo di posizione "corso" viene assegnato un'espressione del modello normale corrispondente per gli scenari sensibili al caso. L'espressione "$ regex:" Python ", $ options: 'I'” cerca la stringa “Python” e l'opzione $ viene utilizzata per abbinare il caso inferiore e superiore della stringa “Python”.

db.Insegnanti.Find (Course: $ regex: "Python", $ options: 'I').bello()

Il risultato ha visualizzato il documento il cui campo "Corso" comprende la stringa insensibile al caso "Python".

Esempio n. 5: utilizzando l'operatore $ regex in MongoDB che corrisponde al valore di un array.

Il principio dell'espressione regolare può anche essere implementato per gli array all'interno dei documenti. L'espressione regolare è essenziale quando ci occupiamo dei tag. Qui, abbiamo una query di espressione regolare per abbinare il valore del tag. Abbiamo dato un'espressione classi: $ regex: "it" al metodo find (). L'espressione è fornita con le "classi" di campo che viene distribuita con l'espressione regolare. L'operatore $ regex viene applicato all'espressione regolare con il modello "It". L'operatore $ Regex cerca il modello "It" da quel campo di array "Classi".

db.Insegnanti.find (classes: $ regex: "it")

L'operatore di $ Regex ha restituito tutti i documenti sottostanti i cui valori di array contenevano il modello "esso".

Esempio # 6: utilizzando l'operatore $ regex in MongoDB all'interno del metodo di aggregazione.

Il metodo di aggregazione contiene solo l'operatore di query $ regex insieme alla fase di $ match. Quindi, la funzionalità di $ regex viene eseguita dall'operatore $ regexmatch. Qui, abbiamo chiamato il metodo aggregato () sulla collezione "insegnanti". Quindi, abbiamo usato $ ADDFIELDS che prende l'attributo "risultati" per generare l'output restituito dall'espressione specificata. L'espressione "$ regexmatch: input:" $ corsi ", regex:/account/" è fornita in cui l'operatore "$ regexmatch" viene utilizzato per inserire il campo "$ corsi" che corrispondeva al modello "regex"/account /.

db.Insegnanti.aggregato(
[$ addFields: Risultati: $ regexmatch: input: "$ corsi", regex: / account /])

Quei documenti il ​​cui nome del corso è output con il valore reale e i risultati del documento rimanenti vengono visualizzati con il valore falso.

Conclusione

Le query $ regex vengono utilizzate per trovare motivi e caratteri in una stringa. Qui, abbiamo esplorato l'espressione regolare per la corrispondenza dei pattern usando l'operatore $ regex nei criteri di selezione. Inoltre, abbiamo le opzioni $ che vengono utilizzate anche con $ regex nell'espressione regolare per abbinare il modello. Quindi, abbiamo eseguito l'espressione regolare sull'array e per la tecnica di aggregazione con lo stadio $ regexmatch.