2010-07-31 10 views
5

Oto dokument w sklepie:RavenDB. Jak załadować dokument z tylko 5 przedmiotami z wewnętrznej kolekcji?

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

Łatwo jest załadować ten dokument z lub bez Pracowników zbiórki, ale jak załadować tylko część kolekcji wewnętrznej? Na przykład pierwsze 5 pozycji:

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

Odpowiedz

6

Nie bezpośrednio, nie.

Co można zrobić, to określić następujące index:

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

można następnie kwerendy indeks dla pierwszych pięciu pracowników

0

Można korzystać żyć rzuty cechę RavenDB. Umieść to zapytanie w funkcji TransformResults indeksu: Zakładam, że nazwa twojego dokumentu to Firma.

TransformResults = (database, companies) => from c in companies 
             select new {Company=c,Employees=c.Employees.Take(5)}; 
Powiązane problemy