【发布时间】:2014-11-21 03:13:27
【问题描述】:
基本上我的问题是:我如何对存在属性等于值 A 和值 B 的相关节点的关系属性求和?
例如:
我有一个简单的DB有如下关系:
(site)-[:HAS_MEMBER]->(user)-[:POSTED]->(status)-[:TAGGED_WITH]->(tag)
在 [:TAGGED_WITH] 上,我有一个名为“TimeSpent”的属性。通过使用以下查询,我可以轻松总结特定日期和用户所花费的所有时间:
MATCH (user)-[:POSTED]->(updates)-[r:TAGGED_WITH]->(tags)
WHERE user.name = "Josh Barker" AND updates.date = 20141120
RETURN tags.name, SUM(r.TimeSpent) as totalTimeSpent;
这会返回给我一个漂亮的表格,其中包含标签和在每个标签上花费的相关时间。 (即#Meeting 4.5)。但是,如果我想进行一些高级搜索并说“显示 ProjectA 的所有会议”(即#Meeting #ProjectA),就会出现问题。基本上,我正在寻找一个查询,我可以获取单个状态具有两个标签的所有关系(并且仅当它同时具有两个标签时)。然后我可以将该数字相加,以计算我在#ProjectA 中参加了多少次会议。
我该怎么做?
【问题讨论】:
标签: neo4j cypher nodes graph-databases