Я работаю над веб-API на C #, который получает данные из пользовательского интерфейса в виде массива JSON, который содержит некоторые данные, которые я хочу использовать в предложениях соответствия в моем запросе MongoDB.
Iя пытаюсь сделать запрос как можно более динамичным, чтобы он работал с разными коллекциями и любым количеством операторов сопоставления, которые я хочу добавить во время выполнения, так как он будет извлекаться один за другим из массива JSON.
Я пытался использовать StringBuilder, доступный в C #, но так как построитель строк возвращает строку, а монго-запрос должен быть 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", new BsonDocument(){
{item.Collection+"."+item.Key,query }}}
при запуске результата это должно выглядеть как
{"$match, new BsonDocument(){{"<Value of item.Collection . "Value of item.Key",query }}}
Теперь, когда цикл снова запускается в массиве Json, мой оператор соответствия должен быть:
{"$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 }
}}
AND SOON ...
Простите, если вопрос абсурдный, я новичок в MongoDB.