neo4j - 即使在 null 检查之后为什么我在 neo4j 中得到 null 值?
问题描述
我尝试了以下查询,其中我试图获取有联系的人,如果该联系人导演了一部电影,那么电影名称。在此,我试图避免电影名称为 null。
但下面的查询不起作用,我什至尝试过 IS NOT NULL。和 m.title <> NULL
MATCH (a:Person)-[:HAS_CONTACT]->(b)
OPTIONAL MATCH (b)-[:DIRECTED]->(m:Movie)
WHERE m <> NULL
RETURN a.name, b.name,m.title
LIMIT 1
结果:
a.name b.name m.title
"Keanu Reeves" "Rita Wilson" null
解决方案
由于 anOPTIONAL MATCH
不必匹配(例如,如果 ab
没有DIRECTED
关系),您的查询RETURN
子句可以合法地看到 NULL m
(以及 NULL m.title
)。
如果您只想查看一个(可能为空的)值列表m.title
(如果该电影没有,则其中任何一个都可能为 NULL title
):
MATCH (a:Person)-[:HAS_CONTACT]->(b)
RETURN a.name, b.name, [(b)-[:DIRECTED]->(m:Movie) | m.titles] AS titles
LIMIT 1
推荐阅读
- javascript - 当我使用它来导入axios API时如何解决require的引用错误?
- java - ElementNSImpl 类型的对象以 com.sun.org.apache.xerces.internal.dom.ElementNSImpl 的形式出现
- opencv - 具有各种“深度”的场景的平均高档多图像超分辨率的巧妙解决方案
- sql - 必须声明标量变量“@LocationId”
- sql - 如何更新数据库函数的列值?
- java - java.lang.ClassNotFoundException: services.Login
- ibm-cloud - 什么是 Cloudant 文档过期字段?
- javascript - 试图将 url 段发布到 firebase
- javascript - 日期格式短信
- python - 无法理解 .mode() 在 python 中的使用