2010-07-31 6 views
5

Hier ist ein Dokument im Laden:RavenDB. Wie lade ich Dokumente mit nur 5 Artikeln aus der inneren Sammlung?

{ 
    "Name": "Hibernating Rhinos", 
    "Employees": [ 
     { "Name": "Ayende" }, 
     { "Name": "John" }, 
     { "Name": "Bob" }, 
     { "Name": "Tom" }, 
     { "Name": "Lane" }, 
     { "Name": "Bill" }, 
     { "Name": "Tad" } 
    ] 
} 

Es ist leicht, dieses Dokument mit oder ohne Mitarbeiter Sammlung zu laden, aber wie nur einen Teil der inneren Sammlung zu laden? Zum Beispiel die ersten 5 Artikel:

{ 
    "Name": "Hibernating Rhinos", 
    "Employees": [ 
     { "Name": "Ayende" }, 
     { "Name": "John" }, 
     { "Name": "Bob" }, 
     { "Name": "Tom" }, 
     { "Name": "Lane" } 
    ] 
} 

Antwort

6

Nicht direkt, nicht.

Was können Sie tun, ist die folgende Index definieren:

 
from company in docs.Companies 
from emp in company.Employees 
select new { Compnany = company.Name, Employee = emp } 

Anschließend können Sie den Index für die ersten fünf Mitarbeiter abfragen

0

Sie Live-Projektionen Merkmal RavenDB nutzen können. Fügen Sie diese Abfrage in die Funktion TransformResults Ihres Indexes ein: Ich nehme an, dass Ihr Dokumentname Firma ist.

TransformResults = (database, companies) => from c in companies 
             select new {Company=c,Employees=c.Employees.Take(5)}; 
Verwandte Themen