sql >> Database >  >> NoSQL >> MongoDB

c# mongodb hoofdlettergevoelig zoeken

Filteren op stringvelden in Mongodb is hoofdlettergevoelig zonder gebruik te maken van reguliere expressies. Waarom kun je geen reguliere expressies gebruiken?

Uw zoekopdracht kan als volgt worden bewerkt:

var filter = Builders<ME_User>.Filter.And(
Builders<ME_User>.Filter.Regex(u => u.Email, new BsonRegularExpression("/^" + email + "$/i"), 
Builders<ME_User>.Filter.Eq(u => u.Password, password));

Let op de tekens "^" en "$" om een ​​volledige woordzoekopdracht te specificeren en het belangrijkste is de niet-hoofdlettergevoelige operator aan het einde van de reguliere expressie ("/i").

Een andere manier zou de tekstzoekfunctie kunnen zijn, waarvoor een tekstindex moet worden aangemaakt en die hoofdletterongevoelig is voor het Latijnse alfabet:http://docs.mongodb.org/manual/reference/operator/query/text/#match-operation

In C# gebruik je met het tekstfilter:

var filter = Builders<ME_User>.Filter.And(
Builders<ME_User>.Filter.Text(email), 
Builders<ME_User>.Filter.Eq(u => u.Password, password));

Met een tekstindexquery in een OR-component moet u ook een index maken op het wachtwoordveld, anders zal de OR-query een fout opleveren:



  1. Open Redis-poort voor externe verbindingen

  2. MongoDB-kaart ()

  3. Wat is de beste manier om geboortedata op te slaan in MongoDB?

  4. specificeren van $push-locatie in verzameling met behulp van Pymongo