2017-08-08 8 views
0

ネストされたドキュメントを自動的に照会するために使用できる注釈や特別なメソッドがあるかどうかは疑問です。私はクラスの項目Queueを持っています。キューを照会するときに、関連するアイテムを取得したいと思いますが、nullが返されます。MongoDB - ネストされたドキュメントを自動的に照会する

var filter = Filter.Eq(queue => queue.Id, queueId); 
return Collection.Find(filter).FirstOrDefaultAsync(); 

それはそれを行うための自動的な方法ですか私はに基づいて、アイテムリストを手動で移動して、クエリを実行する必要があります:

public class Queue 
{ 
    public string Id { get; set; } 
    public string Name { get; set; } 
    public List<Item> Items { get; set; } 
} 

私は、次のコマンドを使用して、そのIDでキューを照会しています上のコードですか?

ありがとうございました!

+0

データベースには何がありますか?射影を明示的に使用しなければ、MongoDBはあなたのアイテムが存在する場合、アイテムを含む文書全体を返します。または、カスタムマッピングを設定しましたか? – dnickless

答えて

0

これは機能しますか?

public async Task<List<Item>> GetItemsFromQueue(string queueId) 
{ 
    return await Collection.Find(queue => queue.Id == queueId) 
     .Project(new ProjectionDefinitionBuilder<Queue>().Expression(q => q.Items)) 
     .FirstOrDefaultAsync(); 
}