在 Neo4j 的 CQL(Cypher Query Language) 中,IN 操作符用于过滤节点或关系的属性值,以匹配给定的一组值。以下是 IN 操作符的基本用法:

节点属性的 IN 操作符:
MATCH (p:Person)
WHERE p.name IN ['Alice', 'Bob', 'Charlie']
RETURN p;

这将返回所有名字为 'Alice'、'Bob' 或 'Charlie' 的 Person 节点。

关系属性的 IN 操作符:
MATCH (:Person)-[r:KNOWS]->(:Person)
WHERE r.type IN ['Friend', 'Colleague']
RETURN r;

这将返回所有类型为 'Friend' 或 'Colleague' 的 KNOWS 关系。

使用 IN 操作符进行多属性匹配:
MATCH (p:Person)
WHERE p.name IN ['Alice', 'Bob', 'Charlie'] AND p.age IN [25, 30]
RETURN p;

这将返回名字为 'Alice'、'Bob' 或 'Charlie' 且年龄为 25 或 30 的 Person 节点。

使用 IN 操作符进行动态匹配:
WITH ['Alice', 'Bob', 'Charlie'] AS names
MATCH (p:Person)
WHERE p.name IN names
RETURN p;

在此示例中,names 是一个参数,它包含要匹配的名字列表。这使得可以动态地指定要匹配的值。

IN 操作符在 Cypher 中是一个强大而灵活的工具,可以帮助你过滤匹配特定属性值的节点或关系。


转载请注明出处:http://www.zyzy.cn/article/detail/9296/Neo4j