sql >> Database >  >> NoSQL >> MongoDB

Hoe gegevens ophalen uit de MongoDB-verzameling in C # met behulp van reguliere expressie?

Ik zou aanraden een genormaliseerde versie van uw gegevens op te slaan en daarop te indexeren/zoeken. Het zal waarschijnlijk aanzienlijk sneller zijn dan het gebruik van regex. Natuurlijk, je verbruikt wat meer opslagruimte door "john" naast "John" op te nemen, maar je gegevenstoegang zal sneller zijn omdat je gewoon een standaard $eq-query zou kunnen gebruiken.

Als je aandringt op regex, raad ik aan om ^ . te gebruiken (begin van de regel) en $ (einde regel) rond uw zoekterm. Onthoud echter dat u aan uw zoekwaarde moet ontsnappen, zodat de inhoud niet als RegEx wordt behandeld.

Dit zou moeten werken:

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

Of als u een nieuwere versie van het framework gebruikt, kunt u tekenreeksinterpolatie gebruiken:

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



  1. Fout bij het bijwerken van het MongoDb-array-element

  2. Hoe krijg ik gekleurde query-uitvoer en shell in MongoDB?

  3. Is er een manier om MongoDB-queryobjecten te gebruiken om reguliere JavaScript-arrays te filteren?

  4. MongoDB $cos