2017-06-15 92 views
0

我可以Robomongo運行它,但我不知道如何在C#如何在Mongo C#中搜索嵌套列表?

db.getCollection('package').find({'Items': {$elemMatch: {'Coupons': {$elemMatch:{_id : 33944115}}}}}) 

我試試這個代碼做到這一點,但跳投返回null。

var filter = Builders<Coupon>.Filter.Eq(coupon => coupon.Id, 33944115); 
var filter1 = Builders<Item>.Filter.ElemMatch(item => item.Coupons, filter); 
var filter2 = Builders<Package>.Filter.ElemMatch(package => package.Items, filter1); 
var result = PackageCollection.Find(filter2).FirstOrDefault(); 

我的班級:

public class Package 
{ 
    public int Id { get; set; } 
    public IList<Item> Items { get; set; } 
} 

public class Item 
{ 
    public int Id { get; set; } 
    public IList<Coupon> Coupons { get; set; } 
} 

public class Coupon 
{ 
    public int Id { get; set; } 
} 

回答

0

對不起,查詢是正確的。這是錯誤的聯繫。