5

这是商店里的一份文件:

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

不管有没有Employees集合,加载这个文档都很容易,但是如何只加载内部集合的一部分呢?例如,前 5 项:

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

2 回答 2

6

不是直接的,不是的。

您可以做的是定义以下索引:

来自 docs.Companies 中的公司
来自company.Employees中的emp
选择新的 { 公司 = company.Name, Employee = emp }

然后,您可以查询前五名员工的索引

于 2010-08-01T18:54:39.163 回答
0

您可以使用 RavenDB 的实时投影功能。将此查询放在索引的 TransformResults 函数中:我假设您的文档名称是 Company。

TransformResults = (database, companies) => from c in companies
                                        select new {Company=c,Employees=c.Employees.Take(5)};
于 2012-12-29T04:21:24.003 回答