Я использую официальный mongodb С# driver.
Я хочу запросить mongodb simliar для SQL Like
что-то вроде db.users.find({name:/Joe/}
в драйвере С#
MongoDB С# Запрос для "Like" в строке
Ответ 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/
не будет.