Подтвердить что ты не робот

MongoDB С# Запрос для "Like" в строке

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

4b9b3361

Ответ 1

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

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

Обновление:

В соответствии с предложением @RoberStam существует более простой способ сделать это:

Query.Matches("name", "Joe") 

Ответ 2

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

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

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

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

Ответ 3

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

Regex является ближайшим, вы получите инструкцию SQL LIKE.

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