在neo4j中使用否定运算符,
在这种情况下,它将给出与john有在neo4j中使用否定运算符,,neo4j,cypher,negation,Neo4j,Cypher,Negation,在这种情况下,它将给出与john有[r:friend\u]关系的所有节点, 但是,我想要那些与约翰没有关系的人 那么,有人能帮我吗,提前谢谢 match (a)-[r:friend_of]-(b) where a.name='john' return b.name 匹配(a)-NOT[r:friend\u of]-(b)其中a.name='john'返回b.name 匹配(a)-[r:friend\u of]-(b)其中a.name='john'返回b.name 我正在尝试这一点,但没有得
[r:friend\u]
关系的所有节点,
但是,我想要那些与约翰没有关系的人
那么,有人能帮我吗,提前谢谢
match (a)-[r:friend_of]-(b) where a.name='john' return b.name
匹配(a)-NOT[r:friend\u of]-(b)其中a.name='john'返回b.name
匹配(a)-[r:friend\u of]-(b)其中a.name='john'返回b.name
我正在尝试这一点,但没有得到我正在阅读您的问题,查找与name属性值为“john”的节点相关且与“friend\u of”关系无关的所有节点。如果这是正确的,那么我认为这将满足您的需求:
match (a)- NOT [r:friend_of]-(b) where a.name='john' return b.name
match (a)- <> [r:friend_of]-(b) where a.name='john' return b.name
匹配(a)-[r]-(b),其中键入(r)“friend_of”和a.name='john'返回b.name
我将您的问题理解为,查找与name属性值为“john”的节点相关且与“friend\u of”关系无关的所有节点。如果这是正确的,那么我认为这将满足您的需求:
match (a)- NOT [r:friend_of]-(b) where a.name='john' return b.name
match (a)- <> [r:friend_of]-(b) where a.name='john' return b.name
匹配(a)-[r]-(b),其中键入(r)“friend_of”和a.name='john'返回b.name
Cypher没有用于查找“不相关”节点的特殊语法
这里有一种方法可以找到与约翰不是朋友的人:
MATCH (a)-[r]-(b) WHERE TYPE(r) <> "friend_of" AND a.name = 'john' RETURN b.name
此查询首先获取John所有朋友的列表,然后返回不在该列表中的人。Cypher没有用于查找“不相关”节点的特殊语法 这里有一种方法可以找到与约翰不是朋友的人:
MATCH (a)-[r]-(b) WHERE TYPE(r) <> "friend_of" AND a.name = 'john' RETURN b.name
此查询首先获取John所有朋友的列表,然后返回不在该列表中的人