MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak pobrać dane z kolekcji MongoDB w C# za pomocą wyrażenia regularnego?

Zalecam przechowywanie znormalizowanej wersji danych i indeksowanie/wyszukiwanie na ich podstawie. Prawdopodobnie będzie to znacznie szybsze niż użycie wyrażenia regularnego. Jasne, zużyjesz trochę więcej miejsca, dodając „john” obok „John”, ale dostęp do danych będzie szybszy, ponieważ będziesz mógł użyć standardowego zapytania $eq.

Jeśli nalegasz na wyrażenie regularne, polecam użyć ^ (początek linii) i $ (koniec wiersza) wokół wyszukiwanego hasła. Pamiętaj jednak, że powinieneś zmienić wartość find, aby jej zawartość nie była traktowana jako RegEx.

To powinno działać:

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

Lub jeśli używasz nowszej wersji frameworka, możesz użyć interpolacji ciągów:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Odpytywanie tego samego dokumentu równolegle w tym samym API w mongoDB

  2. Uzyskaj różne wartości z tablicy na podstawie warunków w tablicy

  3. Rubin/szyny:mongoid z mongo(klejnotem); konflikt bsonów? Jak radzić sobie z różnymi wersjami?

  4. Wyrażenia regularne Spring data mongodb repositories

  5. Pobieranie znacznika czasu z identyfikatora mongodb