我正在使用C#的Web API进行工作,如果一个JSON数组包含要在MongoDB查询的match子句中使用的某些数据,则会以这种形式从UI中获取输入。
我正在尝试使查询尽可能地动态,以便它与不同的集合以及要在运行时添加的任意数量的match语句一起使用,因为它将从JSON数组中一个接一个地检索它。
我尝试使用C#中可用的StringBuilder,但是由于字符串生成器返回了一个字符串,并且mongo-query必须是BsonDocument。
StringBuilder queryParam = new StringBuilder();
queryParam.Append("{\"" + item.Collection+"."+item.Key+"\""+ "new BsonDocument(){\"" + item.Collection + "." + item.Key + "\", new BsonDocument() { {\"$in\", BsonArray.Create(" + item.Key + ")}}},");
var query = queryParam.ToString().Trim('"');
我尝试过的查询中的Match语句如下
{"$match", new BsonDocument(){
{item.Collection+"."+item.Key,query }}}
结果运行时,应构建为
{"$match, new BsonDocument(){{"<Value of item.Collection . "Value of item.Key",query }}}
现在,当循环再次在Json数组上运行时,我的match语句应为:
{"$match, new BsonDocument(){
{"<Value of item[1].Collection . "Value of item[1].Key",query },
{"<Value of item[2].Collection . "Value of item[2].Key",query }
}}
等等...
不好意思,如果这个问题很荒谬,我是MongoDB的新手。