Condividi
Equivalente operatore like in MongoDB
Sto utilizzando MongoDB e vorrei fare una interrogazione (query) equivalente ad una select sql con l'operatore LIKE , tipo come questa:
SELECT *
FROM users
WHERE name LIKE '%ar%'
Come posso ottenere la stessa interrogazione in MongoDB, esiste per questo l'operatore like?
Risolta
2
MongoDB
29-06-2018
3 Risposte
2009 Visite
+2
Risposte ( 3 approvate )
Sostanzialmente devi usare le espressioni regolari anziché i caratteri wildcard, la sintassi generale è
ricordo che nelle regular expression puoi usare anche i caratteri ^ e $ per indicare rispettivamente inizio e fine stringa, ad esempio così ti trova solo i nomi che iniziano per ar e poi sono seguiti da zero o più caratteri, come arianna
mentre per il fine stringa scriverai
quindi troverà tutti i nomi che finiscono per 'na', come arianna, susanna e così via.
Devi usare
Nelle espressioni regolari .* equivale al carattere wildcard % ossia fa il matching di qualsiasi carattere (anche più di uno) prima e dopo la stringa 'ar', in questo caso ti troverà tutti i nomi come: sara, mario, carlo e così via, esattamente come sarebbe successo usando l'operatore LIKE in una select sql classica.
Specificare .* o meno è indifferente, quindi scrivere
è uguale a scrivere