使用MongoDB C#驱动程序在文本搜索上指定过滤条件

时间:2013-10-01 21:26:37

标签: c# .net mongodb mongodb-.net-driver

我正在尝试针对MongoDB集合向文本搜索命令添加过滤条件。我可以在MongoLab中成功运行该命令,但是我无法通过MongoDB C#驱动程序获取正确的语法来执行命令。

以下内容返回与搜索条件匹配但忽略过滤条件的所有记录:

var textSearchCommand = new CommandDocument
{
    {"text", "Post"},
    {"search", "motorcycle"},
    {"filter", @"{""Type"":1}"}
};

var commandResult = this.Collection.Database.RunCommand(textSearchCommand);

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:3)

正确的语法:

var filter = Query.EQ("Type", 1);
var textSearchCommand = new CommandDocument
{
    {"text", this.Collection.Name},
    {"search", searchString},
    {"filter", BsonValue.Create(filter)}
};

var commandResult = this.Collection.Database.RunCommand(textSearchCommand);