27

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

4

5 に答える 5

45

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

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

アップデート:

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

Query.Matches("name", "Joe") 
于 2011-12-05T08:58:31.830 に答える
34

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();
于 2015-12-02T02:35:17.947 に答える
10

MongoDB C# ドライバーには、使用できるBsonRegex 型があります。

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

プレフィックス付きの正規表現はインデックスを使用できることに注意してください。/^Joe/インデックスを使用しますが、使用し/Joe/ません。

于 2011-12-05T08:40:02.597 に答える
0

@Sridharに感謝-私のために働いた同様のアプローチ

public List<SearchModel> GetSearchResult(string searchParam) => _collection.Find(new BsonDocument { { "Datetime", new BsonDocument { { "$regex", searchParam }, { "$options", "i" } } } }).ToList(); // Search DateTime "Like"
于 2021-05-31T15:34:59.517 に答える