2010-07-31 11 views
5

Mağazadaki bir belge:RavenDB. İç koleksiyondan sadece 5 maddeyle belge nasıl yüklenir?

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

Bu belgeyi Çalışan koleksiyonu ile veya olmadan yüklemek kolaydır, ancak iç koleksiyonun sadece bir kısmını nasıl yükleyebilirim? Örneğin, ilk 5 öğe:

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

cevap

6

Doğrudan değil, değil.

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

Ardından Sen RavenDB canlı Projeksiyonlar özelliğini kullanabilirsiniz ilk beş çalışanı

0

için endeksini sorgulayabilir:

Ne yapabilirsiniz aşağıdaki indeksi tanımlamaktır. Bu sorguyu, dizininizin TransformResults işlevine koyun: Belgenizin adının Şirket olduğunu varsayalım.

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