ti-enxame.com

Consulta em MongoDB C # para 'Like' na string

estou usando o driver mongodb c # oficial. eu quero consultar mongodb simliar para SQL como algo como db.users.find({name:/Joe/} no driver c #

24
gsagrawal

consulta c # terá a seguinte aparência:

Query.Matches("name", BsonRegularExpression.Create(new Regex("Joe")));

Atualizar:

De acordo com a sugestão do @RoberStam, há uma maneira mais simples de fazer isso:

Query.Matches("name", "Joe") 
43
Andrew Orsich

Para o driver c # 2.1 (MongoDB 3.0)

var collection = database.GetCollection<BsonDocument>("<<name of the collection>>");

var filter = Builders<BsonDocument>.Filter.Regex("name", new BsonRegularExpression("Joe"));

var result = await collection.Find(filter).ToListAsync();

Para o driver c # 2.2 (MongoDB 3.0)

var filter = new BsonDocument { { parameterName, new BsonDocument { { "$regex", value }, { "$options", "i"} } } }

var result = collection.Find(filter).ToList();
28
Sridhar

O driver MongoDB C # possui um tipo BsonRegex que você pode usar.

Regex é o mais próximo que você vai chegar da instrução SQL LIKE.

Observe que os Regexes prefixados podem usar índices: /^Joe/ usará um índice, /Joe/ não vou.

10
Gates VP