#c# #mongodb #linq #.net-core #mongodb-.net-driver
Вопрос:
Я пытаюсь сравнить два файла в документе, для сравнения я использую фильтр buildrs
var builder = Builderslt;Tgt;.Filter;
так что это работа, когда я помещаю статические данные или данные из варибал, как это
var filter = builder.Eq(c =gt; c.IsValid, true); filter = filter amp; builder.Gte(c =gt; c.ExpirationDate, DateTime.Now);
но когда я пытаюсь сравнить две колонки,
Подобный этому
filter = filter amp; builder.Where(c =gt; c.NumberOfAllowedUses gt; c.NumberOfUses);
Я столкнулся с этой ошибкой
Unsupported filter: ({document}{NumberOfAllowedUses} gt; {document}{NumberOfUses})
Я пытался
filter = filter amp; builder.Gt("this.NumberOfAllowedUses-this.NumberOfUses", 0);
не возвращайте данные.
В конце концов, как я использую фильтр
var query = _couponRepository.Collection.OfTypelt;Tgt;().Find(filter); var list = query.ToListAsync();
Дополнительная информация SQL-запрос
Select * from Coupon where NumberOfAllowedUses gt; NumberOfUses
Запрос MongoDB
db.Coupon.find({ "$where": "this.NumberOfAllowedUses gt; this. NumberOfUses" });
Итак, как я могу сравнить два fied Спасибо
Комментарии:
1. этот запрос не поддерживается типизированным способом, вы можете использовать любой допустимый необработанный запрос MQL только в качестве строкового входного аргумента:
coll.Find("{ valid bson raw mql request}")
. ПРИМЕЧАНИЕ. этот запрос будет отправлен непосредственно на сервер, поэтому вам следует использовать имя поля, используемое на стороне сервера