2010-07-31 18 views
5

Voici un document dans le magasin:RavenDB. Comment charger un document avec seulement 5 éléments de la collection interne?

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

Il est facile de charger ce document avec ou sans employés collection, mais comment charger seulement une partie de la collecte intérieure? Par exemple, 5 premiers éléments:

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

Répondre

6

Pas directement, pas.

Ce que vous pouvez faire est de définir l'indice suivant:

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

Vous pouvez alors interroger l'index pour les cinq premiers employés

0

Vous pouvez utiliser la fonction Live projections de RavenDB. Mettez cette requête dans la fonction TransformResults de votre index: Je suppose que votre nom de document est Société.

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