我正在浏览针对初学者的 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
适用于一般情况。
如果您只想匹配具有非常简单条件的节点,例如 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
有关更多信息,请查看文档