2013-02-16 55 views
2

是否可以使用将返回单个文档但不是关键字的属性加载(而不是查询)数据存储中的文档?通过非密钥属性检索RavenDB文档而不询问

在我的场景中,我有用户和品牌。品牌是用户,但用户不一定是品牌。每个品牌都有一个UserId属性以及其Id。有没有一种方法可以通过其UserId加载品牌文档,还是应该简单地为此和查询创建一个静态索引?我想知道是否有什么,可能在IDocumentSession.Advanced,我可以用于这个目的?

回答

3

不,您只能通过密钥加载文档。抱歉。

您可以构造meaningful document keys,这有时会有所帮助。我不确定它会在你描述的情况下。

这可能是由UserId拥有品牌的静态指数的最好方法。

除了 - 我认为这种关系将通过“品牌用户”而不是“品牌用户”更好地描述 - 是吗?

+0

不完全在这种情况下马特 - 用户可以是品牌或消费者。也许'BrandRepresentative'会更有意义。我想我最终可能会有索引,但想检查是否有另一种选择 - 谢谢! – levelnis 2013-02-16 18:08:58

+0

这样做更有意义,是的。但是如果是这样的话,你就有一对一的关系。为什么不排列ID?换句话说,消费者/ 123将匹配用户/ 123。那么你不需要索引。另一种方法是设置用户作为一个抽象基类,并把它们作为[多态实体(http://ravendb.net/docs/client-api/querying/polymorphism) – 2013-02-16 18:14:25

+0

我从来没有考虑到 - 你是一个天才。欢呼马特! – levelnis 2013-02-16 18:32:13