【发布时间】:2012-07-31 21:42:38
【问题描述】:
本质上,我在 CouchDB 中存储实体的有向图,并且需要能够找到图的进出边。
设置:
现在存储数据的方式如下。每个文档代表两个实体之间的关系:
doc: {
entity1: { name: '' ... },
entity2: { name: '' ... }
...
}
我有一个视图,它执行了一堆发射,其中两个发射的文档键控在它们的 entity1 组件和它们的 entity2 组件上,所以类似于:
function() {
emit(['entity1', doc.entity1.name]);
emit(['entity2', doc.entity2.name]);
}
边是有向的,从 entity1 和 entity2 出发。所以如果我想找到一个实体的边缘,我只需查询第一个发射;如果我想让边缘进入实体,我会查询第二个发射。
问题:
这里的问题在于我还需要捕获进入和实体的边缘。有没有办法可以将这两个发射分组或减少为一组 [x] UNIQUE 对的双向集合?
有没有更好的方法来组织我的观点来宣传这一行动?
【问题讨论】:
标签: join graph merge nosql couchdb