前言
- 本文对
neo4j 5.21.0
适用 - 项目需求是查询哪些图包含指定
keyword
,已知实现上用label
作为图的标识
查询得到所有图
即得到所有 label
CALL db.labels() YIELD label RETURN label
查询单个图是否包含 keyword
方式一
查询节点
MATCH (n:lable_1) WHERE n.type CONTAINS 'keyword' OR n.name CONTAINS 'keyword' RETURN n
查询边
MATCH (:lable_1)-[r]->() WHERE r.name CONTAINS 'keyword' RETURN r
方式二
查询非孤立节点和边
MATCH (n:lable_1)-[r]->() WHERE n.type CONTAINS 'keyword' OR n.name CONTAINS 'keyword' OR r.name CONTAINS 'keyword' RETURN n, r
查询孤立节点
MATCH (n:lable_1) WHERE (NOT (n)--()) AND (n.type CONTAINS 'keyword' OR n.name CONTAINS 'keyword') RETURN n
注意孤立节点的查询方式
WHERE (NOT (n)--())
方式三
一次性查询节点和边
MATCH (n:lable_1) OPTIONAL MATCH (n)-[r]->() WITH n, r WHERE n.type CONTAINS 'keyword' OR n.name CONTAINS 'keyword' OR r.name CONTAINS 'keyword' RETURN n, r
- 注意
WITH
语句,没有WITH
语句的化,WHERE
语句不能按预期过滤
本文出自 qbit snap
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。