Database 从图中排除节点的问题 组织
我对图形数据库和neo4j/cypher非常陌生,我很难理解如何从结果中排除各种片段。下面是我的图表。每个节点和每个关系都有一个Database 从图中排除节点的问题 组织,database,neo4j,cypher,graph-databases,Database,Neo4j,Cypher,Graph Databases,我对图形数据库和neo4j/cypher非常陌生,我很难理解如何从结果中排除各种片段。下面是我的图表。每个节点和每个关系都有一个activeFrom和activeTo属性,允许我查看历史上任何给定点的图形 MATCH (:Collective:Company)<-[tree *0..4]-(downline:Collective) RETURN downline 奖金 我已经用这些数据建立了一个neo4j沙箱,如果需要的话,你们可以使用请对此保持成熟,因为我不知道如何使其成为只读。请不
activeFrom
和activeTo
属性,允许我查看历史上任何给定点的图形
MATCH (:Collective:Company)<-[tree *0..4]-(downline:Collective) RETURN downline
奖金
我已经用这些数据建立了一个neo4j沙箱,如果需要的话,你们可以使用请对此保持成熟,因为我不知道如何使其成为只读。请不要去删除数据和混乱的事情为其他人。我还亲自为这个云实例付费,所以请不要滥用VM/资源:)
您可以在此处访问它:(抱歉,出于安全目的,该问题已被删除)。基于您的问题,我正在尝试拼凑您需要的内容,我知道您希望返回包含所有活动节点和关系的路径。这是因为您询问了Office 27和Office 5,它们都是活动节点,但它们与区域5的单一关系处于非活动状态,因此您不需要Office 27->region 5和Office 5->region 5之间的路径 但是,办公室2处于活动状态,并且它与区域4(也处于活动状态)具有活动关系。区域4与公司1的关系不活跃,因此,由于您不希望结果中出现Office 2,我假设这是因为它在整个路径中都存在不活跃的关系 如果是这种情况,这里有一个查询,希望它能满足您的需求-
MATCH p=(:Collective:Company)<-[tree*0..4]-(downline:Collective)
WHERE
ALL(x in relationships(p) WHERE x.activeFrom <= '2015-08-31 23:59:59'
AND (x.activeTo IS NULL OR x.activeTo > '2015-08-31 23:59:59'))
AND ALL(x in nodes(p) WHERE x.activeFrom <= '2015-08-31 23:59:59'
AND (x.activeTo IS NULL OR x.activeTo > '2015-08-31 23:59:59'))
RETURN p
MATCH p=(:Collective:Company)噢,这看起来是一个很好的答案:)谢谢关于neo控制台的提示:)你能帮我理解为什么我写的查询没有达到我预期的效果吗?这有点奇怪,因为你想根据路径进行过滤,但是你已经把它分成了几个节点,然后只有关系——如果你匹配的话(:Collective:Company)
MATCH p=(:Collective:Company)<-[tree*0..4]-(downline:Collective)
WHERE
ALL(x in relationships(p) WHERE x.activeFrom <= '2015-08-31 23:59:59'
AND (x.activeTo IS NULL OR x.activeTo > '2015-08-31 23:59:59'))
AND ALL(x in nodes(p) WHERE x.activeFrom <= '2015-08-31 23:59:59'
AND (x.activeTo IS NULL OR x.activeTo > '2015-08-31 23:59:59'))
RETURN p