sql >> Databáze >  >> NoSQL >> MongoDB

Jak načíst data ze sbírky MongoDB v C# pomocí regulárního výrazu?

Doporučil bych uložit normalizovanou verzi vašich dat a podle toho indexovat/vyhledávat. Pravděpodobně to bude mnohem rychlejší než použití regulárního výrazu. Jistě, spotřebujete o něco více úložného prostoru, když zařadíte „john“ vedle „John“, ale váš přístup k datům bude rychlejší, protože byste mohli použít pouze standardní $eq dotaz.

Pokud trváte na regulárním výrazu, doporučuji použít ^ (začátek řádku) a $ (konec řádku) kolem hledaného výrazu. Pamatujte však, že byste měli uniknout své hodnotě hledání, aby její obsah nebyl považován za RegEx.

Mělo by to fungovat:

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

Nebo pokud používáte novější verzi frameworku, můžete použít řetězcovou interpolaci:

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



  1. Atomicky přesuňte objekt podle ID z jednoho pole do druhého ve stejném dokumentu

  2. RDD BSONObject do DataFrame

  3. Mohu serializovat objekt instance Ruby Digest::SHA1?

  4. Jak se připojit k dotazu v mongodb?