MongoDB C # Запрос 'Like' в строке - PullRequest
24 голосов
/ 05 декабря 2011

Я использую официальный драйвер mongodb c #.я хочу запросить mongodb simliar в SQL как что-то вроде db.users.find({name:/Joe/} в c # драйвер

Ответы [ 3 ]

41 голосов
/ 05 декабря 2011

c # запрос будет выглядеть так:

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

Обновление:

Согласно предложению @RoberStam, есть более простой способ сделать это:

Query.Matches("name", "Joe") 
26 голосов
/ 02 декабря 2015

Для драйвера 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();

Для драйвера c # 2.2 (MongoDB 3.0)

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

var result = collection.Find(filter).ToList();
10 голосов
/ 05 декабря 2011

Драйвер MongoDB C # имеет тип BsonRegex , который вы можете использовать.

Regex - самое близкое к оператору SQL LIKE.

Обратите внимание, чтоРегулярные выражения с префиксом могут использовать индексы: /^Joe/ будет использовать индекс, /Joe/ не будет.

...