查找与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

相关文章

MySQL中查找重复值的实现

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

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

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

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

C++链表的虚拟头节点实现细节及注意事项

《C++链表的虚拟头节点实现细节及注意事项》虚拟头节点是链表操作中极为实用的设计技巧,它通过在链表真实头部前添加一个特殊节点,有效简化边界条件处理,:本文主要介绍C++链表的虚拟头节点实现细节及注... 目录C++链表虚拟头节点(Dummy Head)一、虚拟头节点的本质与核心作用1. 定义2. 核心价值二

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

C++作用域和标识符查找规则详解

《C++作用域和标识符查找规则详解》在C++中,作用域(Scope)和标识符查找(IdentifierLookup)是理解代码行为的重要概念,本文将详细介绍这些规则,并通过实例来说明它们的工作原理,需... 目录作用域标识符查找规则1. 普通查找(Ordinary Lookup)2. 限定查找(Qualif

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

C#实现查找并删除PDF中的空白页面

《C#实现查找并删除PDF中的空白页面》PDF文件中的空白页并不少见,因为它们有可能是作者有意留下的,也有可能是在处理文档时不小心添加的,下面我们来看看如何使用Spire.PDFfor.NET通过C#... 目录安装 Spire.PDF for .NETC# 查找并删除 PDF 文档中的空白页C# 添加与删

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ