Join 在coach数据库中存储类似图形的结构,或者自己包含文档
我试图将网络布局存储在couchdb中,但我的解决方案提供了相当随机的图形。 我将节点与文档一起存储:Join 在coach数据库中存储类似图形的结构,或者自己包含文档,join,graph,couchdb,collation,relationship,Join,Graph,Couchdb,Collation,Relationship,我试图将网络布局存储在couchdb中,但我的解决方案提供了相当随机的图形。 我将节点与文档一起存储: {_id , nodeName, group} 以及以传统方式存储链接: {_id, source_id, target_id, value} 以下是关于在Coach DB I created view中处理联接和多重关系的多个教程: function(doc) { if(doc.type == 'connection') { if (doc.source_id)
{_id ,
nodeName,
group}
以及以传统方式存储链接:
{_id, source_id, target_id, value}
以下是关于在Coach DB I created view中处理联接和多重关系的多个教程:
function(doc) {
if(doc.type == 'connection') {
if (doc.source_id)
emit("source", {'_id': doc.source_id});
if(doc.target_id)
emit("target", {'_id': doc.target_id});
}
}
它应该发出源id和目标id的序列,然后我将其传递给带有include_docs=true
的列表函数,假设源id和目标id成对出现,将所有内容缝合回如下结构中:
{
"nodes":[
{"nodeName":"Name 1","group":"1"},
{"nodeName":"Name 2","group":"1"},
],
"links": [
{"source":7,"target":0,"value":1},
{"source":7,"target":5,"value":1}
]
}
虽然我的列表生成了正确的JSON,但视图映射返回源文档的行数,然后返回目标文档。
到目前为止,我还不知道如何使这个东西正常工作——我很高兴从列表中的文档\u id
中获取附加值,但到目前为止,我还没有找到任何好的示例。
实现同一目标的其他方法是受欢迎的<代码>\u id值是迄今为止CouchDB的标准值
更新:在写一个问题时,我提出了不同的观点,对我眼前的问题进行了排序,但我仍然希望看到其他选择。
更新地图:
function(doc) {
if(doc.type == 'connection') {
if (doc.source_id)
emit([doc._id,0,"source"], {'_id': doc.source_id});
if(doc.target_id)
emit([doc._id,1,"target"], {'_id': doc.target_id});
}
}
更新后的地图功能更有意义。但是,您不需要在键中输入
0
和1
,因为您已经有“源”
和“目标”