转换为BsonDocument时,正在删除字符串中的正则表达式

时间:2013-09-16 15:05:36

标签: c# regex mongodb

我正在使用C#为.net内的mongodb创建一个非常复杂的查询。为此,我将查询构建为字符串,然后解析它以获取QueryDocument:

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

我的问题是查询的一部分包含正则表达式:

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

解析后,当我查看查询Q(如上所述)时,$ regex部分已被删除

欢迎任何帮助。

1 个答案:

答案 0 :(得分: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)/;

调试器将使用的ToString方法似乎更喜欢第二种表示,但这仅仅是它的显示方式。