web-dev-qa-db-ja.com

文字列の「いいね」に対するMongoDB C#クエリ

私は公式のmongodb c#ドライバーを使用しています。 SQLに似たmongodbをクエリしたいのですが、c#ドライバーのdb.users.find({name:/Joe/}のようなものです。

24
gsagrawal

c#クエリは次のようになります。

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

更新:

@RoberStamの提案に従って、これを行うより簡単な方法があります。

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

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();
28
Sridhar

MongoDB C#ドライバーには、使用可能な BsonRegex type があります。

正規表現は、SQL LIKEステートメントに最も近いものです。

接頭辞付きのRegexeはインデックスを使用できることに注意してください:/^Joe/はインデックスを使用します、/Joe/ しない。

10
Gates VP