MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да извлека данни от колекция MongoDB в C# с помощта на регулярен израз?

Бих препоръчал да съхранявате нормализирана версия на вашите данни и да индексирате/търсите по тях. Вероятно ще бъде значително по-бързо от използването на регулярен израз. Разбира се, ще изядете малко повече място за съхранение, като включите „john“ заедно с „John“, но достъпът ви до данни ще бъде по-бърз, тъй като просто ще можете да използвате стандартна $eq заявка.

Ако настоявате за regex, препоръчвам да използвате ^ (начало на ред) и $ (края на реда) около вашата дума за търсене. Не забравяйте обаче, че трябва да избягвате стойността си за намиране, така че нейното съдържание да не се третира като RegEx.

Това трябва да работи:

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

Или ако използвате по-нова версия на рамката, можете да използвате интерполация на низ:

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. Djongo ArrayField 'Item' не може да се абонира

  2. MongoDB:Защо трябва да затваряме курсора, след като е използван?

  3. Как да съпоставя точна фраза с динамичен низ в текстов индекс Mongodb?

  4. Операцията на Mongoose upsert актуализира/подновява ли стойностите на схемата по подразбиране?

  5. Как да архивирате и възстановите базата данни Mongodb