Il miglior tutorial MongoDB regex Nel 2024, in questo tutorial puoi imparare Uso delle espressioni regolari,espressioni regolari case-insensitive,elementi di matrice usando le espressioni regolari,Ottimizzazione regolare interrogazione Espressioni,
espressioni regolari sono utilizzate per descrivere l'uso di una singola stringa, in linea con una serie di regole sintattiche stringa partita.
Molti linguaggi di programmazione supportano l'uso delle espressioni regolari per le operazioni di stringa.
MongoDB usa $ operatore regex per impostare la stringa corrispondente espressione regolare.
MongoDB usa PCRE (Perl Compatible Regular Expression) come linguaggio delle espressioni regolari.
A differenza di ricerca full-text, si usa una espressione regolare non ha bisogno di fare alcuna configurazione.
Si consideri la seguente struttura set di documenti di tutti i messaggi, il documento contiene il contenuto dell'articolo e l'etichetta:
{ "post_text": "enjoy the mongodb articles on tutorialspoint", "tags": [ "mongodb", "tutorialspoint" ] }
I seguenti comandi utilizzano espressioni regolari per trovare articolo contiene stringhe w3cschool.cc:
>db.posts.find({post_text:{$regex:"w3cschool.cc"}})
La query sopra può anche essere scritta come:
>db.posts.find({post_text:/w3cschool.cc/})
Se avete bisogno di recuperare un case-insensitive, siamo in grado di impostare le opzioni di $ come $ i.
Il seguente comando troverà case-insensitive w3cschool.cc stringa:
>db.posts.find({post_text:{$regex:"w3cschool.cc",$options:"$i"}})
La collezione sarà restituire tutti i dati che w3cschool.cc stringa non è case sensitive:
{ "_id" : ObjectId("53493d37d852429c10000004"), "post_text" : "hey! this is my post on W3Cschool.cc", "tags" : [ "tutorialspoint" ] }
Possiamo anche usare le espressioni regolari nel campo array per trovare i contenuti. Questo è utile nella realizzazione dell'etichetta, se hai bisogno di trovare l'etichetta contiene dati (tutorial o tutorial o tutorialpoint o tutorialphp) tutorial all'inizio, è possibile utilizzare il seguente codice:
>db.posts.find({tags:{$regex:"tutorial"}})
Vi è l'uso di espressioni regolari ci sono due punti da notare:
Le espressioni regolari che utilizzano variabili. Assicurarsi di utilizzare una combinazione di eval stringa convertirà dopo non può essere direttamente passato all'espressione concatenazione di stringhe. In caso contrario, non vi è alcun messaggio di errore, ma il risultato è vuoto! Esempi sono i seguenti:
var name=eval("/" + 变量值key +"/i");
Quanto segue è una query sfocata contiene titolo parola chiave non è case sensitive:
title:eval("/"+title+"/i") // 等同于 title:{$regex:title,$Option:"$i"}