我开发了一个简单的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);
我实际上想要构建稍微复杂一些的查询,但最终我追求的功能是使用上面的伪代码中的对象动态构建查询。
如果我没有清楚地了解我想要实现的目标,请随时向我询问其他详细信息。
答案 0 :(得分:4)
好像你有正确的想法......有一个名为Query的类,它本质上是一个没有实例化的查询构建器。
使用MongoDB.Driver.Builders;
Query.And,Query.Or等等都在那里。在linq提供程序下面使用它来构建复杂查询是相同的。