MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como buscar dados da coleção MongoDB em C # usando Expressão Regular?


Eu recomendaria armazenar uma versão normalizada de seus dados e indexar/pesquisar sobre isso. Provavelmente será consideravelmente mais rápido do que usar regex. Claro, você consumirá um pouco mais de espaço de armazenamento incluindo "john" ao lado de "John", mas seu acesso aos dados será mais rápido, pois você poderá usar uma consulta $eq padrão.

Se você insiste em regex, recomendo usar ^ (início de linha) e $ (fim de linha) em torno do seu termo de pesquisa. Lembre-se, porém, que você deve escapar do seu valor de localização para que seu conteúdo não seja tratado como RegEx.

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

Ou se estiver usando uma versão mais recente do framework, você pode usar a interpolação de strings:
string escapedFindValue = System.Text.RegularExpressions.Regex.Escape(findValue);
new BsonRegularExpression($"^{escapedFindValue}$", "i");