2017-06-15 17 views
0

私はRobomongoでそれを実行することができますが、私はこのコードを試してみたが、遠かっnullを返すC#Mongo C#でネストされたリストを検索するには?

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

でこれを行う方法を知りません。

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

申し訳ありませんが、クエリが正しいです。それは間違っていた接続でした。

関連する問題