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

Jus*_*inN 9 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);
Run Code Online (Sandbox Code Playgroud)

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

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

Cra*_*son 4

看来您的想法是正确的...有一个名为 Query 的类,本质上是一个没有实例化的查询生成器。

使用 MongoDB.Driver.Builders;

Query.And、Query.Or 等等……都在那里。它与 linq 提供程序下用于构建复杂查询的内容相同。