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