Graph couchbase中图形结构化数据的查询

Graph couchbase中图形结构化数据的查询,graph,mapreduce,couchdb,couchbase,Graph,Mapreduce,Couchdb,Couchbase,给定一些表示图形的couchbase文档,例如: { id: 1, name: "Node 1", type: "node" } { id: 2, name: "Node 2", type: "node" } { id: 3, name: "Node 3", type: "node" } { from_node: 1, to_node: 2, type: "edge" } { from_node: 1, to_node: 3, type: "edge" } 查找连接到id为1的节点的节点名称的

给定一些表示图形的couchbase文档,例如:

{ id: 1, name: "Node 1", type: "node" }
{ id: 2, name: "Node 2", type: "node" }
{ id: 3, name: "Node 3", type: "node" }
{ from_node: 1, to_node: 2, type: "edge" }
{ from_node: 1, to_node: 3, type: "edge" }
查找连接到id为1的节点的节点名称的最快和最有效的方法是什么

比如:

[ "Node 2", "Node 3" ]
单独使用视图是否可以完成此操作(如果可以,请提供一些示例代码)

还是需要在应用层进行?如果是这样的话,我们可以修改我们的数据模型使之更容易吗


我很感激有专门用于此目的的专用图形数据库,但我们的应用程序数据的细节意味着这些数据库并不完全适用,并且此示例已被简化。

我看不到在视图中这样做的简单方法,您可能知道,Couchbase中的视图是在文档的“设置/更新”,用于创建索引。视图是“索引器”

无法从当前正在编制索引的文档中读取/导航到其他文档,因此无法导航到图形中


因此,您必须在应用程序中加入一部分内容,您还可以查看整理后的视图,这可能有助于您对文档进行一点结构化。()

如果将视图从节点中的
键断开,则使用视图将适用于您的简单示例。但是,我猜您将拥有更深层的结构?如果是这样,CouchDB在数据库中并不是特别擅长/高效的。视图一次只对一个文档操作,列表函数对所有文档操作(默认情况下,使用过滤查询时更少)。许多NoSQL DB都有同样的问题,一些发现具体化路径是最佳选择。如果边仅用于显示两个节点之间的连接,我认为根本不使用它们会更容易。只需将连接的节点存储在node:
{id:1,name:“node 1”,键入:“node”,connected:[2,3]}