Neo4J入门笔记

news2024/11/28 19:04:29

1.安装以及启动

Neo4J作为图数据库标准的一个实现,其功能还是非常强大的功能,并支持Cypher查询。目前其提供了3种版本:

  • 桌面版
  • 社区版
  • 企业版
    在这里插入图片描述
    Neo4J其实现是基于Java实现的,所以JDK的安装是必须的,启动的方式官方文档有具体说明,笔者不在赘述,但是需要值得的一提的在windows的操作系统上通过PowerShell启动,其需要admin的管理员权限,但是并不是所有的电脑都有管理员权限,但是有Java的权限,
    假设你的neo4j的安装包是放在
D:\neo4j-community-5.1.0

这个时候可以通过下面的命令进行启动。

java.exe -cp D:\neo4j-community-5.1.0\plugins\*;D:\neo4j-community-5.1.0\conf\*;D:\neo4j-community-5.1.0\lib\* -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow -XX:+AlwaysPreTouch -XX:+UnlockExperimentalVMOptions -XX:+TrustFinalNonStaticFields -XX:+DisableExplicitGC -Djdk.nio.maxCachedBufferSize=1024 -Dio.netty.tryReflectionSetAccessible=true -Djdk.tls.ephemeralDHKeySize=2048 -Djdk.tls.rejectClientInitiatedRenegotiation=true -XX:FlightRecorderOptions=stackdepth=256 -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED -Dlog4j2.disable.jmx=true -Dfile.encoding=UTF-8 org.neo4j.server.CommunityEntryPoint --home-dir=D:\neo4j-community-5.1.0 --config-dir=D:\neo4j-community-5.1.0\conf --console-mode

2. Neo4J Cypher语法的常见例子

假设举一个例子,在《猫和老鼠》的动画片里面,Tom[猫] 追赶Jerry[老鼠]; Jerry[老鼠]也追赶Tom[猫]。
在这里插入图片描述

其语法如下:

1.1 创建关系和节点,会重复创建

create (tom:Cartoon{name:"Tom"}) -[:RUN_AFTER] -> (jerry:Cartoon{name:"Jerry"})

1.2 创建关系和节点,不会重复创建

merge (tom:Cartoon{name:"Tom"}) -[:RUN_AFTER] -> (jerry:Cartoon{name:"Jerry"})
  1. 删除某个节点以及其所有的关系
match(p:Cartoon) detach delete p
  1. 只删除关系
MATCH p=()-[r:RUN_AFTER]->() delete r return r
  1. 只删除节点
match(p:Cartoon) delete p
  1. 查询节点和关系
match(p:Cartoon) return p
  1. 增加双向关系
create (tom:Cartoon{name:"Tom"}) -[:RUN_AFTER] -> (jerry:Cartoon{name:"Jerry"})
create (jerry) -[:RUN_AFTER] -> (tom) 
return tom,jerry

merge(tom:Cartoon{name:"Tom"}) -[:RUN_AFTER] -> (jerry:Cartoon{name:"Jerry"})
merge(jerry) -[:RUN_AFTER] -> (tom) 
return tom,jerry


create (tom:Cartoon{firstName:"Tom", lastName:"Montague", age:13}) - 
[:RUN_AFTER {since:"a long time ago", till:"forever", where:"verona"}] -> (jerry:Teen:Cartoon{firstName:"Jerry",lastName:"Capulet", age:13})
create (jerry) -[:RUN_AFTER] -> (tom) 
return tom,jerry

create (tom:Cartoon{name:"Tom", lastName:"Montague", age:13}) - 
[:RUN_AFTER {since:"a long time ago", till:"forever", where:"verona"}] -> (jerry:Teen:Cartoon{name:"Jerry",lastName:"Capulet", age:13})
create (jerry) -[:RUN_AFTER] -> (tom) 
return tom,jerry


merge(tom:Cartoon{name:"Tom", lastName:"Montague", age:13}) - 
[:RUN_AFTER {since:"a long time ago", till:"forever", where:"verona"}] -> (jerry:Teen:Cartoon{name:"Jerry",lastName:"Capulet", age:13})
create (jerry) -[:RUN_AFTER] -> (tom) 
return tom,jerry

7.读取数据: 函数,ASC,SKIP,LIMIT不区分大小写,但是Label区分大小写

match(n:Cartoon) where n.name='Jerry' or n.firstName='Tom' return n

match(n:Cartoon) where toLower(n.name)='jerry'  return n order by n.age ASC SKIP 2 LIMIT 5

match(n:Cartoon) where toLower(n.name)='jerry'  return n order by n.age asc

8.关系查询带方向

match(p:Cartoon) - [l:RUN_AFTER] - () return r

9.更新数据

match(p:Cartoon{name:"Jerry"}) where p.age=13 set p.age=14 

match(p:Cartoon) set p.age=p.age+1 return p

match(p:Cartoon) where p.age>=14 AND p.age<18 set p.age=p.age+1 return p

match(p:Cartoon) 
where p.age>=14 AND p.age<18  AND p.name IS NOT NULL
set p.smell='teenSpirit' 
set p.environment="dev"
return p

10.删除所有关系和节点

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r

3. 从CSV文件导入到Neo4j的语法如下

Neo4J默认提供了剧本的例子,从CSV导入neo4j的语法如下:

LOAD CSV WITH HEADERS FROM "https://data.neo4j.com/northwind/products.csv" AS row
CREATE (n:Product)
SET n = row,
n.unitPrice = toFloat(row.unitPrice),
n.unitsInStock = toInteger(row.unitsInStock), n.unitsOnOrder = toInteger(row.unitsOnOrder),
n.reorderLevel = toInteger(row.reorderLevel), n.discontinued = (row.discontinued <> "0")

需要注意的是,如果是直接从本地文件导入,则需要把"https://data.neo4j.com/northwind/products.csv" 换成 “files:///products.csv”
同时把products.csv文件放入到D:\neo4j-community-5.1.0\conf\import 目录下。

在这里插入图片描述

4. 总结

今天的总结就到此为止,如果大家有兴趣,可以点赞或者收藏;当点赞或者收藏的次数大于5以后,说明此专题很受大家欢迎,我将会在补充和整理形成一系列文章.

其他博客推荐

https://blog.csdn.net/alex_xfboy/article/details/82970127?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EOPENSEARCH%7ERate-1-82970127-blog-128069525.pc_relevant_vip_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EOPENSEARCH%7ERate-1-82970127-blog-128069525.pc_relevant_vip_default&utm_relevant_index=1#t27

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/41756.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

细胞穿膜肽MPG,Mpa-GALFLGFLGAAGSTMGA-OH

嵌合肽家族&#xff0c;来源HIV gp41和猴病毒40T抗原NLS融合序列的一个疏水区 编号: 205074中文名称: 细胞穿膜肽MPG单字母: Mpa-GALFLGFLGAAGSTMGA-OH三字母: Mpa-Gly-Ala-Leu-Phe-Leu-Gly-Phe-Leu-Gly-Ala-Ala-Gly-Ser-Thr-Met-Gly-Ala-COOH氨基酸个数: 17分子式: C73H113O21…

C++入门基础06:简单语句与顺序结构、选择结构if与switch、循环语句、跳转语句、异常处理

C入门基础06&#xff1a;简单语句与顺序结构、选择结构if与switch、循环语句、跳转语句、异常处理 1、简单语句与顺序结构&#xff1a; #include <iostream> //系统定义头文件一般是尖括号 #include<fstream> #include<string> using namespace std;int ma…

资本-劳动力错配指数计算、金融错配指标两大维度指标(内附代码)

一、资本错配和劳动力错配指数计算 1、数据来源&#xff1a;各省级统计年鉴/中国统计年鉴、 2、时间跨度&#xff1a;2000-2019年 3、区域范围&#xff1a;31省市自治区 4、指标说明&#xff1a; 资源的稀缺性决定了经济学研究的一个基本问题就是资源配置&#xff0c;如…

找出你的高价值潜在用户 - 通过归因分析实现用户画像和精准营销

在之前的博客文章 为什么你的用户转化率不高&#xff1f;--新媒体运营转化效果渠道归因分析中&#xff0c;我们讲到 新媒体运营用户转化相关的指标以及目标追踪&#xff0c;以及相关的渠道归因分析。在本篇文章中&#xff0c;我们一起来看看&#xff0c;如何通过 Kyligence Zen…

数据结构:二叉树

目录 树 二叉树 堆 以大堆为例代码实现 功能预览 初始化 销毁 打印 插入数据 删除数据 建堆 获取栈顶元素 获取数组中的元素个数 判空 堆排序 TopK问题 二叉树链式结构的实现 功能预览 二叉树遍历 求节点的总个数 求叶子节点的个数 求树的深度 求第k层的…

零入门容器云网络-5:同一宿主机上的两个网络命名空间通信方案

已发表的技术专栏&#xff08;订阅即可观看所有专栏&#xff09; 0  grpc-go、protobuf、multus-cni 技术专栏 总入口 1  grpc-go 源码剖析与实战  文章目录 2  Protobuf介绍与实战 图文专栏  文章目录 3  multus-cni   文章目录(k8s多网络实现方案) 4  gr…

Android 虚拟分区详解(一) 参考资料推荐

文章目录0. 导读1. Android 官方 VAB 文档1.1 公开文档1.2 半公开文档2. Device Mapper 文档2.1 device mapper 文档2.2 dmsetup 工具2.3 COW 介绍3. Android 源码4. 参考资料汇总5. 后续计划6. 其它Android Virtual A/B 系统简称 VAB&#xff0c;我在这一系列里面又将其称为虚…

【LeetCode每日一题:813. 最大平均值和的分组~~~前缀和+递归+记忆化搜索】

题目描述 给定数组 nums 和一个整数 k 。我们将给定的数组 nums 分成 最多 k 个相邻的非空子数组 。 分数 由每个子数组内的平均值的总和构成。 注意我们必须使用 nums 数组中的每一个数进行分组&#xff0c;并且分数不一定需要是整数。 返回我们所能得到的最大 分数 是多少…

前端面试整理

Js 1. Localstorage、sessionStorage、cookie、session的区别 &#xff08;1&#xff09;web storage和cookie的区别&#xff1a; Cookie(不设置过期时间) sessionStorage WebStorage的目的是克服由cookie所带来的一些限制&#xff0c;当数据需要被严格控制在客户端时&…

C/C++ 深入浅出C++模板(上)

不知道你是否思考过一个问题&#xff0c;那就是为什么C有丰富的库&#xff0c;而C语言却没有&#xff1f;比如说C有STL库&#xff0c;线程库等。其实一个很重要的因素就是因为C引入了泛型编程这个概念&#xff0c;也就是我们熟悉的模板。今天我们就一起来深入理解什么是泛型编程…

如何将文字转语音?这几个软件可以将文字转语音

最近有朋友向我求助说&#xff0c;自己在学校的社团里准备了一个话剧节目&#xff0c;需要为这个节目进行旁白配音&#xff0c;但是里面的台词不仅绕口&#xff0c;还有一些是生僻字&#xff0c;念起来有点困难。要是碰上自己的课程比较多的时候&#xff0c;难以兼顾两边的工作…

使用Apache搭建网站

❤️痛苦不是失败&#xff0c;而是你本可以❤️ 实验环境 CentOS7.3&#xff08;1611&#xff09;版本、Apache2.4&#xff0c;vsftpd3.0 本次实验目的 1.编译安装httpd 2.优化路径 3.并将鲜花网站上传到web服务器为网页目录&#xff08;当然其他网站源码也可以&#xff09;…

CMU 15-213 CSAPP. Ch11. Dynamic Memory Allocation

CMU 15-213 CSAPP (Ch1~Ch3) CMU 15-213 CSAPP (Ch5~Ch7) CMU 15-213 CSAPP (Ch8) CMU 15-213 CSAPP (Ch9) CMU 15-213 CSAPP (Ch10) CMU 15-213 CSAPP (Ch11) 视频链接 课件链接 课程补充 该课程使用 64位 编译器&#xff01; Ch11. Dynamic Memory Allocation 11.1 Basic c…

【附源码】计算机毕业设计JAVA政府人才机构在线考试系统2021

【附源码】计算机毕业设计JAVA政府人才机构在线考试系统2021 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1…

《web课程设计》基于HTML+CSS+JavaScript典的中医药大学网(11个页面)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

基于Python监测键盘输入并发出声音的坤音键盘

代码和软件在公众号【走神研究所】发送【键盘】关键字获取。这是一款基于python的桌面小工具&#xff0c;能够实时显示你敲击键盘的按键&#xff0c;并且当摁下“J”、“N”、“T”、“M”时会发出坤音。具体视频演示和代码原理在这里打开程序&#xff0c;随意摁下键盘&#xf…

2022/11/27一周总结

项目 redis 安装以及启动 切换到redis根目录运行cmd&#xff0c;先启动服务端redis-server.exe 2.输入redis-cli并回车&#xff08;redis-cli是客户端程序&#xff09;如图正常提示进入&#xff0c;并显示正确端口号&#xff0c;则表示服务已经启动。 基本知识 数据类型 St…

算法提升:图的Dijkstra(迪杰斯特拉)算法

目录 概念 思路 代码 概念 迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959年提出的&#xff0c;因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法&#xff0c;解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是从起始点开始&#xf…

【Hack The Box】linux练习-- Ophiuchi

HTB 学习笔记 【Hack The Box】linux练习-- Ophiuchi &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月27日&#x1f334; &#x1…

MySQL的执行计划explain

select_type&#xff1a;表示的查询类型 SIMPLE&#xff1a;表示查询语句不包含子查询和union;PRIMARY&#xff1a;表示此查询是最外层的查询&#xff1b;UNION: 表示此查询是UNION的第二个或后续的查询&#xff1b;DEPENDENT UNION&#xff1a;表示此查询是UNION的第二个或后续…