MongoDB C# de la Requête pour le "Like" sur la chaîne

j'utilise le pilote officiel mongodb c#. je veux interroger mongodb simliar à SQL comme quelque chose comme db.users.find({name:/Joe/} en c# pilote

23
demandé sur gsagrawal 2011-12-05 11:43:33

3 réponses

c# requête ressemble à:

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

mise à Jour:

Query.Matches("name", "Joe") 
40
répondu Andrew Orsich 2013-04-11 06:40:46

Pour le c# pilote 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();

Pour le c# pilote 2.2 (MongoDB 3.0)

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

   var result = collection.Find(filter).ToList();
24
répondu Sridhar 2016-06-01 23:04:24

MongoDB C# pilote a un BsonRegex type que vous pouvez utiliser.

Regex est le plus proche que vous obtiendrez à la SQL LIKE déclaration.

notez que les Regexes préfixés peuvent utiliser les index:/^Joe/ utilisera un index,/Joe/ ne sera pas.

10
répondu Gates VP 2011-12-05 08:40:02