2010-07-31 6 views
5

Aquí es un documento en el almacén:RavenDB. ¿Cómo cargar el documento con solo 5 elementos de la colección interna?

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

Es fácil de cargar este documento con o sin empleados de recolección, pero la forma de cargar sólo una parte de la colección interior? Por ejemplo, primeros 5 elementos:

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

Respuesta

6

No directamente, no.

Lo que puede hacer es definir el siguiente índice:

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

continuación, se puede consultar el índice para los primeros cinco empleados

0

puede utilizar la función de proyecciones en vivo RavenDB. Coloque esta consulta en la función TransformResults de su índice: Supongo que su nombre de documento es Compañía.

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