sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo obtener datos de la colección MongoDB en C# usando la expresión regular?

Recomendaría almacenar una versión normalizada de sus datos e indexar/buscar sobre eso. Probablemente será considerablemente más rápido que usar expresiones regulares. Claro, consumirá un poco más de espacio de almacenamiento al incluir "john" junto a "John", pero su acceso a los datos será más rápido ya que solo podrá usar una consulta $eq estándar.

Si insiste en expresiones regulares, recomiendo usar ^ (comienzo de línea) y $ (final de línea) alrededor de su término de búsqueda. Sin embargo, recuerde que debe escapar de su valor de búsqueda para que su contenido no se trate como RegEx.

Esto debería funcionar:

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

O si está usando una versión de marco más nueva, puede usar la interpolación de cadenas:

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