如何使用MongoDB和C#驱动程序构建复杂查询?

时间:2012-08-23 11:15:27

标签: c# mongodb

我开发了一个简单的API,允许您在MongoDB Collection中构建一系列搜索条件。我现在需要能够将此数组转换为实际的Mongo查询,而这部分是我遇到极大困难的地方。

理想情况下,我遵循一些语法,允许我执行以下伪代码:

var query = new QueryBuilder();
foreach (var group in groups)
{
    switch (group.Condition)
    {
        case GroupCondition.Or:
            query.Or(group.Queries);
        break;
        case GroupCondition.And:
            query.And(group.Queries);
        break;
    }
}
return myCollection.FindAs(type, query);

我实际上想要构建稍微复杂一些的查询,但最终我追求的功能是使用上面的伪代码中的对象动态构建查询。

如果我没有清楚地了解我想要实现的目标,请随时向我询问其他详细信息。

1 个答案:

答案 0 :(得分:4)

好像你有正确的想法......有一个名为Query的类,它本质上是一个没有实例化的查询构建器。

使用MongoDB.Driver.Builders;

Query.And,Query.Or等等都在那里。在linq提供程序下面使用它来构建复杂查询是相同的。