.net 仅加载Ravendb文档数组项的一部分
让我们想象一下带有如下本地化的文档:.net 仅加载Ravendb文档数组项的一部分,.net,ravendb,.net,Ravendb,让我们想象一下带有如下本地化的文档: { "Id":"product/1", "CategoryId":"categories/1", "Translations":[ { "Lang": "en", "Title:"en title"}, { "Lang": "hr", "Title:"hr title"} ] } 如果我查询索引CategoryId:“categories/1”和Lang:“en”,我想从
{
"Id":"product/1",
"CategoryId":"categories/1",
"Translations":[
{ "Lang": "en", "Title:"en title"},
{ "Lang": "hr", "Title:"hr title"}
]
}
如果我查询索引CategoryId:“categories/1”和Lang:“en”,我想从Raven投影/展平/过滤的结果中得到如下结果:
{
"Id":"product/1",
"CategoryId":"categories/1",
"Lang":"en",
"Title":"en title"
}
所以基本上,文档包含数组中的本地化字符串,我只想得到一种语言。在客户机上进行过滤不是问题,但如何在raven服务器上使用Transformer进行过滤呢
或者,您可以推荐一些其他文档结构来存储本地化内容吗?目前,我有单独的文档Product和ProductTranslation(针对每种语言),但我希望所有文档都放在一个文档下(看起来更像OO:/)如果产品之间的唯一区别是翻译,我会使用不同的模型。产品文档将包含categoryId、price和所有其他产品信息
假设产品保存在
products/1
下,那么您可以将其他文档保存在id下,如products/1/en
、products/1/es
等,并将翻译后的字符串存储在那里。然后,您可以使用ResultTransformer将翻译后的字符串注入查询的最终结果。如果产品之间的唯一区别是翻译,我将使用不同的模型。产品文档将包含categoryId、price和所有其他产品信息
假设产品保存在
products/1
下,那么您可以将其他文档保存在id下,如products/1/en
、products/1/es
等,并将翻译后的字符串存储在那里。然后,您可以使用ResultTransformer将翻译后的字符串注入查询的最终结果。hmm,听起来很有趣!c#model会是什么样子?我试图将产品作为聚合根,将翻译作为其中的值对象。这是可以实现的吗?嗯,听起来很有趣!c#model会是什么样子?我试图将产品作为聚合根,将翻译作为其中的值对象。这是可以实现的吗?