查找与Neo4j中的输入节点有特定关系的节点

2024-06-02 16:18

本文主要是介绍查找与Neo4j中的输入节点有特定关系的节点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

我有具有name和id属性的节点。这些节点与其他节点有朋友关系。如{约翰} - [朋友] - > {保罗},{约翰} - [朋友] - > {何塞},{何塞} - [朋友] - > {保罗}查找与Neo4j中的输入节点有特定关系的节点

创建用户

session.run("CREATE (a:User {name: {name}, id: {id}})", parameters("name", name, "id", id)); 

创建关系

session.run("MATCH (a:User),(b:User) WHERE a.id = {node1} AND b.id = {node2} CREATE (a)-[r:FRIENDS]->(b)", parameters("node1", id1, "node2", id2)); 

现在我正在寻找查询约翰的朋友,这应该列出我保罗和何塞。我怎么做 ?尝试了下面,并得到空的结果。无法弄清楚为什么

session.run("MATCH (a:User{id:{id}})<-[:FRIEND]-(actor) RETURN a.id", parameters("id", user)); 

 

必须通过[开发手册]您读(https://neo4j.com/docs/developer-manual/3.1/)?这是在文档中详细解释的基本查询功能:在您的开始节点上匹配所需的模式,返回您感兴趣的模式部分。您试图查询的内容到目前为止您尝试过了什么? – InverseFalcon

谢谢@InverseFalcon。用我的方法更新了问题。是啊,看起来像一个选择查询基本,但有点卡住了。任何建议 –

 

回答

 

你需要确保你使用相同的关系类型,您创建的关系时一样。在创建查询中,创建一个:FRIENDS关系,但在后续查询中,您正在寻找一个:FRIEND关系。你需要确保你是一致的。

此外,您还需要确保从比赛中正确的变量中返回参数。

在您的查询中,a是您的起始节点,因为您提供了该节点的ID,但是您要返回同一节点的ID。我想你的意思是返回actor.id,它引用比赛另一端的变量。

要记住的另一件事是关系方向。 Neo4j中的所有关系都有一个方向,但是有很多问题你不关心关系的方向,或者你不知道它是朝着哪个方向发展。您的朋友关系就是一个很好的例子,因为当您查询两个用户是否是朋友时,您不会知道或关心方向,因此您可以将方向箭头留在查询中。

试试这个:

session.run("MATCH (a:User{id:{id}})-[:FRIENDS]-(actor) RETURN actor.id", parameters("id", user)); 

这篇关于查找与Neo4j中的输入节点有特定关系的节点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1024460

相关文章

Java 中的 equals 和 hashCode 方法关系与正确重写实践案例

《Java中的equals和hashCode方法关系与正确重写实践案例》在Java中,equals和hashCode方法是Object类的核心方法,广泛用于对象比较和哈希集合(如HashMa... 目录一、背景与需求分析1.1 equals 和 hashCode 的背景1.2 需求分析1.3 技术挑战1.4

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

Linux从文件中提取特定内容的实用技巧分享

《Linux从文件中提取特定内容的实用技巧分享》在日常数据处理和配置文件管理中,我们经常需要从大型文件中提取特定内容,本文介绍的提取特定行技术正是这些高级操作的基础,以提取含有1的简单需求为例,我们可... 目录引言1、方法一:使用 grep 命令1.1 grep 命令基础1.2 命令详解1.3 高级用法2

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四:

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分