我正在浏览neo4j上的文档和一个2个月前的youtube视频,供初学者使用。我想用他的名字从数据库里找到一个用户。这里有两种方法:双向:MATCH (u:USER {name:"abcd"}) RETURN u。Youtube视频方式:MATCH (u:USER} WHERE u.name = "abcd" RETURN u这两种方式都可以完成这项工作,但我不知道何时使用哪一种。谁能告诉我什么时候该用哪一种,它们的根本区别是什么?这两种方法都安全吗?
MATCH (u:USER {name:"abcd"}) RETURN u
MATCH (u:USER} WHERE u.name = "abcd" RETURN u
omjgkv6w1#
你的第一个问题:MATCH (u:USER {name:"abcd"}) RETURN u只适用于简单的特定情况,而第二个查询:MATCH (u:USER} WHERE u.name = "abcd" RETURN u是一般情况。如果你只想匹配一个具有非常简单条件的节点,比如name = "abcd",这两个都可以工作。对于更复杂的条件,使用WHERE。举例来说:
name = "abcd"
WHERE
MATCH (u:USER) WHERE (u.name = "abcd" AND u.age > 27) OR (u.name = "abcde" AND u.age > 28) RETURN u
在WHERE子句中,可以使用AND、OR、XOR和NOT等布尔运算符。您也可以使用IN和CONTAINS有关更多信息,请查看documentation
AND
OR
XOR
NOT
IN
CONTAINS
1条答案
按热度按时间omjgkv6w1#
你的第一个问题:
MATCH (u:USER {name:"abcd"}) RETURN u
只适用于简单的特定情况,而第二个查询:MATCH (u:USER} WHERE u.name = "abcd" RETURN u
是一般情况。如果你只想匹配一个具有非常简单条件的节点,比如name = "abcd"
,这两个都可以工作。对于更复杂的条件,使用
WHERE
。举例来说:在
WHERE
子句中,可以使用AND
、OR
、XOR
和NOT
等布尔运算符。您也可以使用IN
和CONTAINS
有关更多信息,请查看documentation