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

Hvordan henter man data fra MongoDB-samling i C# ved hjælp af regulært udtryk?

Jeg vil anbefale at gemme en normaliseret version af dine data og indeksere/søge efter det. Det vil sandsynligvis være betydeligt hurtigere end at bruge regex. Selvfølgelig vil du spise lidt mere lagerplads ved at inkludere "john" sammen med "John", men din dataadgang vil være hurtigere, da du bare ville være i stand til at bruge en standard $eq-forespørgsel.

Hvis du insisterer på regex, anbefaler jeg at bruge ^ (start af linje) og $ (slut på linjen) omkring dit søgeord. Husk dog, at du bør undslippe din fundværdi, så dens indhold ikke behandles som RegEx.

Dette burde virke:

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

Eller hvis du bruger en nyere rammeversion, kan du bruge strenginterpolation:

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



  1. Azure Table vs MongoDB på Azure

  2. Fjern dubletter fra MongoDB 4.2-databasen

  3. MockBean-annotering i Spring Boot-test forårsager NoUniqueBeanDefinitionException

  4. MongoDB PHP bruger $in med array