Рассмотрим следующую структуру объекта хранится в виде документов:Запрос с фильтром строителем на вложенном массиве с использованием MongoDB C драйвер #
public class Foo
{
public string Id { get; set; }
public ICollection<FooBar> Bars { get; set; }
// ...
}
public class FooBar
{
public string BarId { get; set; }
// ...
}
с помощью запроса LINQ-стиле с водителем я могу Find
все Foo
, которые содержат FooBar
BarId
как это:
var foos = await m_fooCollection.Find(f => f.Bars.Any(fb => fb.BarId == "123")).ToListAsync();
Как я могу добиться этого же запроса с использованием FilterDefinitionBuilder
вместо поточного LINQ на Find
?
Это не LINQ, просто лямбда-выражение. – i3arnon
'.Any' на' ICollection' является частью класса 'Enumerable' в пространстве имен' System.Linq', правильно? – kspearrin
Действительно, но этот метод никогда не будет называться. Драйвер переводит выражение в запрос mongo. – i3arnon