0

C# を使用して、.net 内で mongodb の非常に複雑なクエリを作成しています。これを行うには、クエリを文字列として作成し、それを解析して QueryDocument を取得します。

var Q = new QueryDocument(BsonDocument.Parse(QueryString))

私の問題は、クエリの一部に正規表現が含まれていることです:

{""Str.tagkw"":{$regex : "" \\b(rasberry|ice cream|sweeties)\\b ""}}

解析後、クエリ Q を見ると $regex 部分が削除されています (上記のように)

どんな助けでも大歓迎です。

4

1 に答える 1

1

あなたのコードは私のために働くようです:

string queryString = @"{""Str.tagkw"":{$regex : "" \\b(rasberry|ice cream|sweeties)\\b ""}}";
var Q = new QueryDocument(BsonDocument.Parse(queryString));

これを Visual Studio などの IDE で見ると、次のように表示されます。

{ "Str.tagkw" : / \b(rasberry|ice cream|sweeties)\b / }

これが Javascript 表現です。Javascript では、次のいずれかを使用して正規表現を作成できます。

var regex = new RegExp("(foo|bar)");

または、構文糖として

var regex = /(foo|bar)/;

デバッガーが使用するメソッドは 2 番目のToString表現を好むようですが、それは表示方法の問題です。

于 2013-09-16T18:02:51.380 に答える