2013-02-20 76 views
2

如何处理嵌套文档上的动态字段索引,以便您可以使用RavenDB查询深层图形对象的动态字段?使用RavenDB为嵌套文档编制索引动态字段

使用示例从文档:http://ravendb.net/docs/2.0/client-api/advanced/dynamic-fields

如果一个产品的属性值也是一个产品?考虑一个CMS的动态字段,其中一切都是内容和一个根实体内容(对于DDD家伙)可能会嵌入另一个等(深层图)。

这是非常重要的,因为汇总子内容而不是与它们相关(就像在关系数据库世界中那样),这是文档数据库的核心概念之一。

回答

1

如果数据符合某种模式,例如使用分层数据,则可以根据递归模式对recurse into that data进行索引。您已经找到index dynamic fields。您可以将这些技术结合使用,以最大限度地获得您可以描述的任何模式。

如果数据是任意动态(即你无法知道什么是对象结构提前),那么你将很难达到任何特定的领域,因为你不能描述如何访问它。

您不能随意动态,并且可以同时完全索引。

+0

感谢Recurse功能。我不确定它适用于我的场景。无论如何,我用另一种方式来解决我的问题,是的,我的问题是关于任意动态的数据。我找到的解决方案是使用RavenDB附带的HTTP API。 – W3Max 2013-02-22 17:59:33

+0

如何使用HTTP API改变你正在索引的内容? – 2013-02-22 18:04:33

+0

好问题......答案是我不再存储C#类。通过HTTP API,我可以在C#模型中生成(在运行时 - 不知道此结构之前)一个定义良好的结构(JSON对象),它表示嵌套在名称/值集合中的数据(如引用的产品示例)。 – W3Max 2013-02-22 18:15:17