MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come recuperare i dati dalla raccolta MongoDB in C# usando l'espressione regolare?

Consiglierei di archiviare una versione normalizzata dei tuoi dati e di indicizzarla/cercare su quella. Probabilmente sarà notevolmente più veloce rispetto all'utilizzo di regex. Certo, occuperai un po' più di spazio di archiviazione includendo "john" insieme a "John", ma l'accesso ai tuoi dati sarà più veloce poiché potresti semplicemente utilizzare una query $eq standard.

Se insisti sull'espressione regolare, ti consiglio di usare ^ (inizio riga) e $ (fine riga) attorno al termine di ricerca. Ricorda, tuttavia, che dovresti sfuggire al tuo valore di ricerca in modo che il suo contenuto non venga trattato come RegEx.

Questo dovrebbe funzionare:

string escapedFindValue = System.Text.RegularExpressions.Regex.Escape(findValue);
new BsonRegularExpression(string.Format("^{0}$", escapedFindValue), "i");

Oppure, se stai utilizzando una versione del framework più recente, puoi utilizzare l'interpolazione di stringhe:

string escapedFindValue = System.Text.RegularExpressions.Regex.Escape(findValue);
new BsonRegularExpression($"^{escapedFindValue}$", "i");