neo4j cypher:从顺序查询结果中堆叠节点

时间:2014-03-13 05:33:21

标签: neo4j cypher

考虑到db中存在三种类型的节点,由模式连接

(a:a)-[ra:madeWithB {ra.qty}]->(b:b)-[rb:madeWithC {rb.qty}]->(c:c)

用户可以与这些类型中的每一种建立连接。

(user)-[:has {qty}]->(a:a)
(user)-[:has {qty}]->(b:b)
(user)-[:has {qty}]->(c:c)

查询数据库以返回用户所拥有的所有节点的列表的最佳方法是什么,考虑到当他::(a)然后在结果中关联(b)和在将qty字段乘以后,还应该返回(c)吗?

真实世界的例子:用户购买了三个宜家家具齐全的房间(节点a)。数据库知道它们中的家具(b节点)以及这些项目所需的部分(指甲和东西,c节点)。用户还购买了一些其他随机家具(即:更多b个节点,没有连接到任何a但连接到更多c)和一些额外的备用钉子和其他部分(即:更多c个节点,未与任何b连接。)

所以 - 知道a以及其他bc的列表 - 打印所有b的列表(这将是三者中包含的总和)房间+额外)和c(这将是所有家具和额外所需的部件),以及相关的数量。

注意:在匹配节点时,请考虑任意长度的查询。

0 个答案:

没有答案