2
鑑於以下情況,我如何返回所有包含帶有TypeOfBar ==「Big」的Bars的Foos?和是否將Foos的Bars限制爲只有TypeOfBar ==「Big」的那些Bars?如何使用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與特定類型的酒吧):
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。
我想你已經誤解了我的要求。是的,你的兩個例子都返回帶有TypeOfBar ==「Big」的Bars的Foos,但是,他們不會*將*返回的Foos的Bars過濾爲只有那些帶有TypeOfBar ==「Big」的Bars。 –
好的,我改變了答案。 –
所以這個工程在上面的玩具箱裏,Foo只有一個_id和一個酒吧列表,但是如果Foo有一些額外的屬性,那麼上面的答案不起作用......返回的Foos只有一個酒吧列表,但他們的其他財產都沒有填寫。 我該如何返回Foos以及酒吧的過濾列表以及Foo的其他屬性? –