neo4j - 实体列表之间存在关系
问题描述
可以使用以下查询找出两个用户之间的关系。
RETURN EXISTS( (:User{_id:'User/123'})-[:Link]-(:User{_id:'User/567'}) )
如果需要针对以下查询的查询列表运行它怎么办?我想检查关系是否存在
MATCH p=(u:User{_id:'User/8199'})-[r:Link]-(u1:User)
WHERE u1._id in ['12317291','User/09563','User/392942','User/24974','User/720']
RETURN p
解决方案
您可以匹配第一次使用,然后遍历 lest 并测试列表中每个其他用户的存在。
MATCH (u:User {_id: 'User/8199'})
WITH u
UNWIND ['12317291','User/09563','User/392942','User/24974','User/720'] | u1] AS other_user
RETURN other_user, exists((u)-[:Link]->(:Test {name: other_user}))
或者,如果您希望之后匹配实际用户,您可以执行类似的操作。匹配第一个用户,测试与用户列表的关系并返回匹配集合。
MATCH (u:User {_id: 'User/8199'})
RETURN [(u)-[:Link]->(u1:User)
WHERE u1._id IN
['12317291','User/09563','User/392942','User/24974','User/720'] | u1] AS matches
推荐阅读
- snakemake - snakemake 规则:传递文件名之外的变量
- apache-flink - 当 flink 作业 jar 体积庞大时如何远程执行 flink 作业
- python - keras中填充整数和字符串的区别
- javascript - 字符串javascript的完整字母顺序
- python - 基于另一个值打印字典值?
- angular - 如何使用 Angular 5 在网页上隐藏图像
- php - 如何使用mysql默认用户名和密码检查用户名和密码?
- java - 监控 IntelliJ 2018.03 时有这么多 Major GC?
- java - Java Jface 无法导入
- javascript - 如何在graphql中重定向到外部网页