2010-07-31 13 views
5

Đây là một tài liệu trong cửa hàng:RavenDB. Làm cách nào để tải tài liệu chỉ với 5 mục từ bộ sưu tập bên trong?

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

Nó rất dễ dàng để tải tài liệu này có hoặc không có Nhân viên bộ sưu tập, nhưng làm thế nào để tải chỉ là một phần của bộ sưu tập nội? Ví dụ: 5 mục đầu tiên:

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

Trả lời

6

Không trực tiếp, không.

Những gì bạn có thể làm là xác định các chỉ số sau:

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

Sau đó bạn có thể truy vấn các chỉ số trong năm nhân viên đầu tiên

0

Bạn có thể sử dụng Dự Tính năng Live của RavenDB. Đặt truy vấn này trong chức năng TransformResults của chỉ mục của bạn: Tôi giả định rằng tên tài liệu của bạn là Công ty.

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