gpt4 book ai didi

ravendb - 如何从 Raven DB 中的嵌套集合中查询项目?

转载 作者:行者123 更新时间:2023-12-04 18:50:23 25 4
gpt4 key购买 nike

我有以下 2 个实体模型:

      public class Store : IModel
{
public string Id { get; set; }
public string Name { get; set; }
public string MainPageUrl { get; set; }
public ICollection<Product> Products { get; set; }

}

public class Product : IModel {
public string Id { get; set; }
public string Name { get; set; }
public double Price { get; set; }
public DateTime Created { get; set; }
}

其中 Store 是我 Raven Db 中的一个文档。
我需要创建一个索引,我可以在其中按名称查询产品,结果应该是仅包含匹配产品的部分 Store 文档。

因此,具体而言,我需要询问 Raven Db:哪些商店有包含此文本的产品,以及每个商店中的这些产品是什么。

现在我可以制作一个索引,它为我提供带有匹配产品的 Store 文档,但它总是给我 所有 这些文件中的产品。

我想这是一个非常容易回答的问题,但是作为 Raven Db 和文档数据库的新手,我无法完成这项工作。

几乎是重复的 question已经在这里,但我仍然无法使查询/索引工作。

最佳答案

骡子,
这是预期的,模型中的 Store Document 包含其所有产品,如果您要求 Store Document,您将获得完整的 Store Document。
如果你只想得到你想要的东西的投影,你可以使用以下索引:

from store in docs.Stores
from product in store.Products
select new { product.Name, product.Price, product.Created, store.Id }

将名称、价格、创建时间和 ID 标记为已存储。

然后发出以下查询。
session.Query<StoreProduct>()
.Where(s=>s.Name == name)
.AsProjection<StoreProduct>()
.ToList();

那只会给你匹配的产品。

关于ravendb - 如何从 Raven DB 中的嵌套集合中查询项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6914859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com