sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur hämtar man data från MongoDB-samlingen i C# med hjälp av reguljärt uttryck?

Jag skulle rekommendera att lagra en normaliserad version av dina data och indexera/söka efter det. Det kommer sannolikt att vara betydligt snabbare än att använda regex. Visst, du kommer att äta upp lite mer lagringsutrymme genom att inkludera "john" bredvid "John", men din dataåtkomst blir snabbare eftersom du bara skulle kunna använda en vanlig $eq-fråga.

Om du insisterar på regex rekommenderar jag att du använder ^ (radens början) och $ (slut på raden) runt din sökterm. Kom dock ihåg att du bör undvika ditt fyndvärde så att dess innehåll inte behandlas som RegEx.

Detta borde fungera:

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

Eller om du använder en nyare ramverksversion kan du använda stränginterpolation:

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



  1. Hur får man reda på alla mongoosemodeller?

  2. Ange flera kriterier i vår mongo db-fråga

  3. Mongodb datastatistikvisualisering med matplotlib

  4. Hur sparas faktiskt connect-mongo MongoStore-sessioner?