2
다음과 같이 TypeOfBar == "Big"및 바를 포함하는 모든 Foos를 Foos의 막대가 TypeOfBar == "Big"을 갖는 막대만으로 제한하도록하려면 어떻게해야합니까?Mongo C# 드라이버 2.3과 함께 Mongo.Driver.Linq를 사용하여 필터링 된 하위 문서가있는 문서를 반환하려면 어떻게해야합니까?
public class Foo
{
public string _id { get; set; }
public List<Bar> Bars { get; set; }
}
public class Bar
{
public string _id { get; set; }
public string TypeOfBar { get; set; }
}
내가 쉽게 (특정 유형의 바 모든 FOOS) 첫 번째 부분 얻을 수
: 방법 또한 DB의 수익을 가지고, 내가 힘든 시간을 보내고있어 알아내는 그러나
var client = new MongoClient("myconnectionstring");
var db = client.GetDatabase("myDb");
var collection = db.GetCollection<Foo>("Foos");
var foos = collection.AsQueryable().Where(x => x.Bars.Any(b => b.TypeOfBar == "Big"));
을 Foos에는 필터링 된 Bars 목록이 있습니다. 당신이 종류가있는 경우에만이 FOOS를 필터링 할 경우
나는 당신이 내가 묻고있는 것을 오해했다고 생각합니다. 예, 두 예제 모두 TypeOfBar == "Big"인 막대가있는 Foos를 반환하지만 반환 된 Foos의 막대를 TypeOfBar == "Big"이있는 막대 만 필터링하지는 않습니다. –
오케이, 대답을 변경했습니다. –
위의 장난감 케이스에서 Foo가 _id 및 Bars 만있는 경우 위의 장난감 케이스에서 작동하지만 Foo에 추가 속성이있는 경우 위 응답이 작동하지 않는 경우 ... 반환 된 Foos는 Bars, 그러나 다른 속성들 중 어느 것도 채워지지 않습니다. Foo의 다른 속성뿐만 아니라 필터링 된 Bars 목록을 사용하여 Foos를 반환하려면 어떻게해야합니까? –