2017-08-08 3 views
0

Ich frage mich, ob es eine Anmerkung oder spezielle Methode ist, dass ich automatisch verschachtelte Dokumente abfragen kann. Ich habe eine Klasse Queue, die eine Liste von Elementen enthält. Wenn ich eine Warteschlange abfrage, möchte ich die damit verbundenen Elemente abrufen, aber ich bekomme null.MongoDB - Abfrage verschachtelte Dokumente automatisch

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

Ich bin eine Warteschlange durch seine id Abfrage mit dem folgenden Befehl:

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

Ist es eine automatische Weise zu tun, oder muss ich manuell gehen und fragen Sie die Artikelliste auf der Basis Code oben?

Vielen y'all!

+0

Was ist in Ihrer Datenbank? Ohne die ausdrückliche Verwendung einer Projektion wird MongoDB das gesamte Dokument zurückgeben, das Ihre Artikel enthalten würde, wenn sie vorhanden sind. Oder haben Sie ein benutzerdefiniertes Mapping eingerichtet? – dnickless

Antwort

0

funktionierts?

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(); 
} 
Verwandte Themen