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