02-neo4j的基本命令

2023-11-13

在这里插入图片描述

1.插入节点。插入一个Person类别的节点,且这个节点有一个属性name,属性值为Andres

CREATE (n:Person {name : '梁川川'});

CREATE (n:Person {name : '谢静静'});
CREATE (n:Person {name : '谢霆锋',relation : "大舅"});
CREATE (n:Person {name : '谢2',relation : "2舅"});
CREATE (n:Person {name : '谢3',relation : "3舅"});
CREATE (n:Person {name : '谢4',relation : "4舅"});

2.插入边。插入一条a到b的有向边,且边的类别为Follow r后面是关系

MATCH (a:Person),(b:Person)
WHERE a.name = '梁川川' AND b.name = '谢静静'
CREATE (a)-[r:喜欢]->(b);

MATCH (a:Person),(b:Person)
WHERE a.name = '谢静静' AND b.name = '谢霆锋'
CREATE (a)-[r:大舅]->(b);

MATCH (a:Person),(b:Person)
WHERE a.name = '谢静静' AND b.name = '谢2'
CREATE (a)-[r:二舅]->(b);

MATCH (a:Person),(b:Person)
WHERE a.name = '谢静静' AND b.name = '谢3'
CREATE (a)-[r:三舅]->(b);

MATCH (a:Person),(b:Person)
WHERE a.name = '谢静静' AND b.name = '谢4'
CREATE (a)-[r:权重4]->(b);

CREATE (a)-[r:4]->(b);  r后面不能直接是数字
CREATE (a)-[r:"4"]->(b); 加双引号 单引号都不行
CREATE (a)-[r:权重4]->(b); 这样可以

3.更新节点。更新一个Person类别的节点,设置新的name。

MATCH (n:Person { name: '谢4' })
SET n.name = '谢贵波';
  1. 删除节点。删除这个节点和这个节点有关的联系
MATCH (n:Person { name:'谢3' })
DETACH DELETE n;

CREATE (n:Person {name : '谢三舅',hobby : "看书"});
CREATE (n:Person {name : '谢美美',hobby : "玩游戏"});

MATCH (a:Person),(b:Person)
WHERE a.name = '谢静静' AND b.name = '谢三舅'
CREATE (a)-[r:三舅]->(b);

MATCH (a:Person),(b:Person)
WHERE a.name = '谢三舅' AND b.name = '谢美美'
CREATE (a)-[r:女儿]->(b);

MATCH (n:Person { name:'谢三舅' })
DETACH DELETE n;


MATCH (a:Person),(b:Person)
WHERE a.name = '谢静静' AND b.name = '谢美美'
CREATE (a)-[r:表妹]->(b);

5.删除边

MATCH (a:Person)-[r:Follow]->(b:Person)
WHERE a.name = '梁川川' AND b.name = '谢静静'
DELETE r;

6.查询最短路径。

MATCH (ms:Person { name:'梁川川' }),(cs:Person { name:'谢静静' }), p = shortestPath((ms)-[r:喜欢]-(cs)) RETURN p;

CREATE (n:Person {name : '谢美颜',hobby : "看书"});

MATCH (a:Person),(b:Person)
WHERE a.name = '谢美美' AND b.name = '谢美颜'
CREATE (a)-[r:姐妹]->(b);

MATCH (ms:Person { name:'梁川川' }),(cs:Person { name:'谢美颜' }), p = shortestPath((ms)-[r:姐妹]-(cs)) RETURN p;
(no changes, no records)

中间隔了一个不同的关系

7.查询两个节点之间的关系。

MATCH (a:Person { name:'梁川川' })-[r]->(b:Person { name:'谢美颜' })
RETURN type(r);
(no changes, no records)

MATCH (a:Person { name:'梁川川' })-[r]->(b:Person { name:'谢静静' })
RETURN type(r);
"喜欢"

8.查询一个节点的所有Follower。

**MATCH (:Person { name:'谢静静' })-[r:喜欢]->(Person)
RETURN Person.name;
(no changes, no records)
MATCH (:Person { name:'梁川川' })-[r:喜欢]->(Person)
RETURN Person.name;
"谢静静"**

关系是单向的

java版第一个程序

新建maven项目

从官网下载drive不好用,我是直接从 maven repository 查询的

    <!-- https://mvnrepository.com/artifact/org.neo4j.driver/neo4j-java-driver -->
	<dependency>
	    <groupId>org.neo4j.driver</groupId>
	    <artifactId>neo4j-java-driver</artifactId>
	    <version>1.4.5</version>
	</dependency>
	

通过代码创建节点

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
        Create();
    }
    
    private static void Create() {
		
		// Driver driver = GraphDatabase.driver( "bolt://127.0.0.1", AuthTokens.basic( 用户名, 密码 ) );
        Driver driver = GraphDatabase.driver( "bolt://127.0.0.1", AuthTokens.basic( "neo4j", "541711153" ) );
        Session session = driver.session();

        session.run( "CREATE (n:Person {name : '陈浩杰',hobby : '看书'})" );

        session.close();
        driver.close();
    }
}

执行可以看到页面http://127.0.0.1:7474/browser/ 多了一个节点

通过代码查询节点

 private static void Query() {
        Driver driver = GraphDatabase.driver( "bolt://localhost", AuthTokens.basic( "neo4j", "541711153" ) );//调用地址,用户名和密码
        Session session = driver.session();

        StatementResult result = session.run( "MATCH (a: Person) WHERE a.name = '谢静静' RETURN a.name AS name" );
        while ( result.hasNext() )
        {
            Record record = result.next();
            System.out.println( record.get("name").asString() );
        }

        session.close();
        driver.close();
    }
	

============没试过
创建唯一性约束,同时具有索引效果,类似关系型数据库中的主键。注意,这只能在数据库中还未插入数据时设置。
CREATE CONSTRAINT ON (a:Person) ASSERT a.name IS UNIQUE;
创建索引。
CREATE INDEX ON :Person(name);
查看所有的节点数和边数
MATCH (n) RETURN count(n);
MATCH ()–>() RETURN count(*);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

02-neo4j的基本命令 的相关文章

  • “找不到类型的属性”组合存储库 spring-data-neo4j

    我在用着spring data neo4j我正在尝试组合存储库以便能够使用自定义存储库 我认为我已经正确遵循了中指定的命名约定20 8 7 创建存储库 http docs spring io spring data neo4j docs 3
  • sudoers 是世界可写错误[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我更改了 Ubuntu 12 10 上的 ect 文件权限 以便我可以编辑 bash bashrc 以便 Neo4j 可以看到 JVM 但现在当我尝试
  • neo4j cypher节点之间的多重关系

    例如 a r gt b 两个节点之间存在多个r 每个r userId都是唯一的 例如 a r R userId user1 gt b a r R userId user2 gt b 对于 a r gt c 也是如此 而情况是a r gt b
  • 将最短路径中的所有节点作为对象列表返回

    我有以下 Cypher 查询 它在 Neo4j 2 0 0 中运行良好 MATCH ab Point Latitude 24 96325 Longitude 67 11343 cd Point Latitude 24 95873 Longi
  • python 单元测试中的 Neo4j 临时数据库

    我正在尝试为将与 Neo4j 图形数据库交互的 python 项目创建单元测试 目前 我正在实现嵌入式图形数据库 但如果我选择将其部署到 Web 应用程序 我可能会迁移到 REST 接口 我已经安装了嵌入式 neo4j v1 9rc2pro
  • 使用 scala 检索与给定节点相关的 neo4j 节点

    我有 2 个名为 User node 和 Article node 的节点 它们通过关系相关联 文章节点 gt Written By gt 用户节点 如何获取给定用户节点写入的所有文章节点 我假设您正在使用嵌入式 neo4j 因此有一个类型
  • 使用cypher删除neo4j中的所有节点和关系超出堆空间

    我一直在尝试按照 neo4j google 组和其他在线来源的建议运行此查询 开始 n 节点 匹配 n r 其中 ID n gt 0 删除n r 为了删除测试之间的所有节点和关系 当我从控制台执行此操作时 我用完了 java 堆空间 当我从
  • Neo4j 2.0 唯一约束错误“节点已存在”,当它不存在时

    我在 Neo4j 唯一约束方面遇到了一些麻烦 其中 CREATE cypher 语句由于节点已经存在而无法执行 问题是 它不 存在 此外 昨天使用这些确切数据的精确流程也有效 我的neo4j版本是ubuntu 12 04 3上的commun
  • 如何将dbpedia导入neo4j? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要将 dbpedia 导入 neo4j 我从这里下载 dbpedia http wiki dbpedia org Download
  • 使用 neo4j 建模有序树

    我刚刚开始使用 neo4j 并且了解图形和关系的原理 但是我在想要建模的某些结构方面遇到了一些麻烦 我想在编程语言项目中使用它 并存储已解析源文件的 AST 从那里 我计划向节点添加大量额外的数据和关系 以帮助分析和工具 但基本的 AST
  • Neo4j 在 Cypher 查询运行中仅使用一个核心

    当我在 UI 中运行 Cypher 查询时 服务器中只有一个核心正在运行 查询会卡住或响应非常慢 我使用 Neo4j 3 0 7 社区 有人知道我可以使用所有核心进行哪些调整吗 单个 Cypher 查询仅限于单个线程 看到这个tweet h
  • 如何禁用 Spring Data Neo4j 的登录

    我从 spring neo4j 收到不需要的查询日志 如下所示 25 08 2018 23 47 07 597 restartedMain INFO o n o d bolt request BoltRequest executeReque
  • 如何返回每个另一个节点属性的最大计数

    我需要计算一位作曲家的音乐作品每十年被演奏了多少次 然后只返回每十年演奏次数最多的一首作品 除了过滤除每十年最高计数之外的所有内容之外 该密码可以执行所有操作 match c Composer CREATED BY w Work lt 2
  • with 子句做什么?新4j

    I don t understand what WITH clause do in Neo4j I read the The Neo4j Manual v2 2 2 http neo4j com docs stable query with
  • neo4j - 三个节点之间的关系

    我完全陌生Neo4j这些天我正在测试它 我遇到的一个问题是如何正确实现涉及 3 个不同节点的关系Spring Data 例如 假设我有 3 NodeEntitys User Tag and TaggableObject 正如你可以争论的那样
  • Cypher Neo4j 无法加载外部资源

    在 Windows 环境中 我尝试加载带有以下语句的 csv 文件 LOAD CSV WITH HEADERS FROM file E Neo4j customers csv AS row 它似乎无法正常工作并返回 无法加载外部资源 文件
  • 如何使用 cypher 2.0 不区分大小写进行搜索?

    如何使用 cypher 2 0 Neo4j 2 1 7 在索引字段上不区分大小写进行搜索 正则表达式不使用索引WHERE a X i b Y 使用 lower 不使用索引WHERE lower a X lower b Y 添加具有小写属性值
  • 构造映射不允许索引集合作为映射键?

    所以我正在尝试写一个答案这个问题 https stackoverflow com questions 29262918 cypher zip collections这对我来说似乎很有趣 什么鬼 我来试试 这是我想出的解决方案 对我来说这似乎
  • neo4j合并2个或多个重复节点

    我使用 cypher 手动输入 Neo4j 数据库 因此很容易出现创建重复节点等错误 重复的节点将与其他节点具有各自的关系 是否有内置函数可以合并这些节点 或者我应该手动完成 听起来可能 但密码脚本很复杂 获取每个重复节点的关系 使用正确的
  • neo4j cypher更新现有节点或创建新节点

    我有一个包含大约 900 万个节点和 1200 万个关系的图 对于图中的每个节点 每个节点都有一个属性子集 这些属性通过标签形成节点的唯一标识 该图正在通过各种数据源进行更新 这些数据源会增加图中的现有节点 或者在节点不存在时创建新节点 我

随机推荐

  • java IO框架分析

    jave io框架 2010 11 10 22 18 34 分类 默认分类 举报 字号 订阅 可从IO的类层次 IO框架的设计模式来论述 总体来说 IO可以分为字节流和字符流 不同在于字符流由字节流包装而来 在IO读入之后经过JVM处理 把
  • 编译语言、解释语言与脚本语言之间的区别

    资料一 1 解释型语言与编译型语言的区别翻译时间的不同 编译型语言在程序执行之前 有一个单独的编译过程 将程序翻译成机器语言 以后执行这个程序的时候 就不用再进行翻译了 解释型语言 是在运行的时候将程序翻译成机器语言 所以运行速度相对于编译
  • 通俗易懂的机器学习——筛选垃圾邮件(贝叶斯分类)

    筛选垃圾邮件 贝叶斯分类 背景及应用 贝叶斯公式 数据集 引入依赖包 数据预处理 全局变量 过滤所有非中文词语 读取邮件 加载邮件 获取概率表 划分训练集和测试集 计算分词的概率表 保存概率表 检查邮件是否为垃圾文件 获取分词对应的概率字典
  • SQL-DataCamp-Joining Data in SQL

    1 Introduction to Joins 1 1 Introduction to INNER JOIN video 1 2 INNER JOIN PostgreSQL was mentioned in the slides but y
  • 大数据课程K17——Spark的协同过滤法

    文章作者邮箱 yugongshiye sina cn 地址 广东惠州 本章节目的 了解Spark的协同过滤概念 一 协同过滤概念 1 概念 协同过滤是一种借助众包智慧的途径 它利用大量已有的用户偏好来估计用户对其未接触过的物品的喜好程度 其
  • Qt开发 之 Windows资源管理器模仿 并 小超越

    文章目录 1 简述 2 优化点 2 1 内存处理 2 1 1 Windows的资源管理器 2 1 1 1 大图标模式 2 1 1 2 超大图标模式 2 1 1 3 其他模式 2 1 2 用Qt做的类似资源管理器的软件 2 2 滑动处理 2
  • geek卸载工具安装和使用

    软件描述 geek可以快速彻底将软件卸载后的垃圾程序删除干净 并且小巧无广告 无需安装 整个大小仅仅几兆 一 软件获取 1 通过网盘直接下载 https pan quark cn s 29d5661ca7de 2 官网下载 打开官网后点击d
  • Spring@Autowired注解与自动装配

    1 配置文件的方法 我们编写spring 框架的代码时候 一直遵循是这样一个规则 所有在spring中注入的bean 都建议定义成私有的域变量 并且要配套写上 get 和 set方法 Boss 拥有 Office 和 Car 类型的两个属性
  • IDER代码检查工具

    随着业务的发展 系统会越来越庞大 原本简单稳定的功能 可能在不断迭代后复杂度上升 潜在的风险也随之暴露 导致最终服务不稳定 造成业务价值的损失 而为了减少这种情况 其中一种比较好的方式就是提高代码质量 比如通过代码审查 从而降低错误风险 但
  • Qt控件米白色主题风格,QSS控件样式,Qt风格,Qt控件源代码

    米白色主题控件风格 使用c 开发 原生控件主题风格 主题预览图 由www qt ui com设计开发完成 提供主题源代码 主题下载地址 http www qt ui com theme UIGTE001 主题预览图 产品官网 www qt
  • 【QT进阶】第五章 QT绘图之自定义控件--仪表盘绘制

    作者主页 凉开水白菜 作者简介 共同学习 互相监督 热于分享 多加讨论 一起进步 专栏目录 零基础学QT 文章导航篇 专栏资料 https pan baidu com s 192A28BTIYFHmixRcQwmaHw 提取码 qtqt 点
  • 2.6 矩阵的初等变换

    文章目录 初等变换 行 列 定理 等价 性质 初等方阵 初等方阵与初等变换的关系 三种初等方阵的行列式 逆矩阵 定理 初等矩阵的作用 定理 A可逆条件总结 初等变换法求逆矩阵 初等行变换法 只做行变换 参考 初等变换 行 列 下面是三种初等
  • (5)Qt中的日期和时间

    QDate 日期对象格式化 d 没有前导零的日子 1 to 31 dd 前导为0的日子 01 to 31 ddd 显示 缩写 周一 周二 周三 周四 周五 周六 周日 dddd 显示 完整 星期一 星期二 星期三 星期四 星期五 星期六 星
  • 快速转载他人CSDN博客到自己博客中

    1 右键页面 选择审查元素 2 进入HTML代码页面 选择article content 如何快速找到article content 以谷歌浏览器为例子 鼠标右击 选择检查 点击小箭头 并把鼠标移动到文章内容中 看到baidu pl 点击下
  • 使用 JMeter 完成常用的压力测试

    JMeter 完成常用的压力测试 文档选项 将此页作为电子邮件发送 拓展 Tomcat 应用 下载 IBM 开源 J2EE 应用服务器 WAS CE 新版本 V1 1 摘自 http www 360doc com showWeb 0 0 2
  • C++基础之四个默认函数(构造,析构,拷贝构造,赋值运算符重载)

    文章目录 一 构造函数 构造函数的默认值 赋值方法 二 析构函数 三 拷贝构造函数 四 赋值运算符重载函数 一 构造函数 类的构造函数是类的一种特殊的成员函数 它会在每次创建类的新对象时执行 构造函数的名称与类的名称是完全相同的 并且不会返
  • A State-of-the-Art Survey on Deep Learning Theory and Architectures论文翻译分析

    A State of the Art Survey on Deep Learning Theory and Architectures 摘要 近年来 深度学习在各种应用领域取得了巨大成功 机器学习这一新领域发展迅速 已应用于大多数传统应用领
  • (超详细、带图带源码)Nacos注册中心的搭建与测试

    前言 本系列是从头开始进行学习Nacos的相关知识 从相关概念到业务开发等等 本篇是第三篇 主要知道为什么需要注册中心 为什么选择Nacos作为注册中心和Nacos作为注册中心的快速搭建 入门篇 阿里Nacos系列 为什么要选择Nacos和
  • 密码学技术在区块链系统中的应用

    密码学技术是区块链数据核心技术 P2P网络协议 共识机制 密码学技术 账户与存储模型 中核心的技术点 区块链主要用到的密码算法有哈希算法和加密算法 加密又包括对称性加密和非对称性加密两个概念 区块链系统里面一般常用到的是非对称加密 本文首先
  • 02-neo4j的基本命令

    1 插入节点 插入一个Person类别的节点 且这个节点有一个属性name 属性值为Andres CREATE n Person name 梁川川 CREATE n Person name 谢静静 CREATE n Person name