У меня ниже определение фильтра, встроенное из C#.
FilterDefinition<BsonDocument> filter
= "{\"request.ignore\":\"0\", \"created\":{$gte:ISODate(\"" + DateFrom + "T00:00:00.000Z\"),$lt:ISODate(\"" + DateTo + "T23:59:59.000Z\") }, " +
"\"response.resultData.isOk\":true, \"request.status\":\"" + status +
"\", \"request.deptId\" : { $eq : \"" + Convert.ToInt32(DeptId).ToString() + "\"}";
Работает отлично. Однако, если я объединяю строки, добавляя приведенный ниже фрагмент кода, он не работает:
if (!string.IsNullOrEmpty(userName))
{
filter += ", \"request.userName\" : { $eq : \"" + userName + "\"}";
}
filter += "}";
Выдается исключение System.FormatException, говорящее:
{"JSON, который ожидал читатель значение, но найдено 'MongoDB'. "}
... при выполнении ниже:
List<BsonDocument> results = collection
.Find(filter)
.Sort(sort)
.ToList();