neo4j

这篇具有很好参考价值的文章主要介绍了neo4j。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

-- 创建节点语句

CREATE (
<node-name>:<label-name>
{
<Property1-name>:<Property1-Value>
........
<Propertyn-name>:<Propertyn-Value>
}
);

其中的node-name 是节点名称

label-name 是标签名称

propert1-name是属性名称和property-value是属性值

例如
单节点单标签

create (p:Person{name:"alicy"});

create (p:Person{name:"Tom", sex:"男"});

neo4j

 文章来源地址https://www.toymoban.com/news/detail-747461.html


单节点多标签
CREATE (m:Movie:Cinema:Film:Picture)

 

neo4j

 

 

-- match 语法
方法一:match (x:Person{name:"Tom"}) return x;

方法二:
match (p:Person)
where p.name="Tom"
return p;

这两种是等价的,都是查找到Person下的名字叫Tom的节点

neo4j

 

 

 

返回特定节点的特定属性
返回名字叫Tom的性别属性:
match (p:Person{name:"Tom"}) return p.sex;

neo4j

 

创建单标签到关系

关系都是有方向的,从开始到结束

CREATE (<node1-name>:<label1-name>)-
	[<relationship-name>:<relationship-label-name>]
	->(<node2-name>:<label2-name>)
node1-name:是from的节点名称、label1-name是标签名称
node2-name:是to的节点名称 label2-name是标签名称
relationship-name:关系名称
relationship-label-name:关系标签名称
为alicy和Tom创建恋人关系
match(a:Person{name:"alicy"}),(b:Person{name:"Tom"}) 
create (a) 
-[rl:love]
->(b);
match(a:Person{name:"Tom"}),(b:Person{name:"alicy"}) 
create (a) 
-[rl:love]
->(b);
相当于查出alicy和Tom,并分别叫上别名a,b ,为a,b建立关系

 

neo4j

 -- 移除关系,让alicy变心

match(a:Person{name:"alicy"})-[lv]->(b:Person{name:"Tom"})   delete  lv;

neo4j

 -- alicy 爱上了laowang

match(a:Person{name:"alicy"}),(b:Person{name:"LaoWang"})

create (a)

-[lv:love]

->(b);

neo4j

 

-- Tom 发现后自动解除关系,并退出
match(a:Person{name:"Tom"})
-[lv]->(b:Person{name:"alicy"})
delete a,lv
;
 neo4j

 -- 删除节点

match (a:Movie) delete a;
-- 删除Tom节点以及它的所有关系
match (p:Person{name:'Tom'}) -[lv]-(m) delete p,lv;
 
 
-- 为alicy 添加性别属性
match (p:Person{name:"alicy"}) set p.sex='女' return p;
match (p:Person{name:"alicy"}) set p.job='主播' return p;

neo4j

 

 
-- 把alicy的职业移除
match (p:Person{name:"alicy"}) remove p.job  return p;

neo4j

-- 按照名字排序

match (p:Person)   return p.name ORDER BY p.name desc;

neo4j

 -- union

match (a:Person{name:"alicy"})return a.name union all  match(b:Person{name:"Tom"}) return b.name; 
这种写法是不行的

neo4j

 从报错中可以得到必须要相同的列名,虽然我们看着相同,但是编辑器不认识,所以加上一个别名

match (a:Person{name:"alicy"}) return a.name as name  union all  match(b:Person{name:"Tom"}) return b.name as name; 

neo4j

 -- limit

match (a:Person) return a LIMIT 1;
 
neo4j
 
--   skip
match (a:Person) return a skip 1;

 

neo4j

 

从结果看alicy被跳过去了

 

-- merge 语法 无则添加有则不动
match(a:Person{name:"Tom"}),(b:Person{name:"LaoWang"}) merge (a)-[lv:love]->(b) return a, b ;
 

-- 加上唯一约束

CREATE CONSTRAINT ON (n:Person) ASSERT n.name IS UNIQUE;

neo4j

 

-- in 语句不能使用()而是[]

match(p:Person) where p.name in ["Tom","test"] return p;

 

到了这里,关于neo4j的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图数据库(三):Neo4j中的Create和Merge

    在上篇文章中,我们介绍了在项目中如何使用Java来操作Neo4j图数据库。今天我们就仔细的学习一下,Neo4j中如何创建节点,以及Create和Merge的区别使用。 Create的简单用法 在Neo4j中,我们使用Create来创建节点。 我们创建一个Role标签的节点,属性name的值为主角,age的值为10 on c

    2024年02月09日
    浏览(41)
  • Neo4J CQL语句

    含义 有时,根据我们的客户端要求,我们需要向现有节点或关系添加新属性(字段)。要做到这一点,Neo4j CQL提 供了一个SET子句。 如tom的age,name,sex都为null 创建索引 删除索引 创建唯一索引 删除唯一索引 Distinct 删除标签下所有数据 如果报错如下,说明节点包含关系 删除节

    2024年01月21日
    浏览(37)
  • Neo4j入门:手动构建节点关系

    目录 一、基本cypher语句建立节点和关系 建立节点 带属性的节点 一次建立多个节点 建立两个节点之间的关系 二、用CSV文件导入方法对Neo4j Desktop批量创建节点和关系 批量创建节点 创建一个编码为utf-8格式的CSV文件 将CSV文件放入到我们neo4j目录下面的import目录下 回到Neo4j执行

    2024年01月16日
    浏览(53)
  • neo4j批量追加属性、节点、关系

    前提:这个方法是用python连接neo4j再循环执行cql语句来实现的,适合1w条记录以内的数据,太大了就比较慢,平均1s执行30条语句左右。 主要的不同就在于cql语句的使用 连接数据库: 读取节点表和关系表,该文件是存储好的csv文件 中文是替代的文件名字,不是源文件名 替换

    2024年02月16日
    浏览(50)
  • NEO4J节点及节点间关系显示不完整的解决方法

    1.问题说明 在使用NEO4J数据库进行知识图谱的可视化时,在节点个数过多时(一般超过25个)会出现节点和节点关系显示不全的情况。 如下图所示,项目中共包含74个节点190条关系,但实际显示的仅有25个节点间的61条关系,超过25个之外的节点及其关系并未展示。 2.解决方案

    2024年02月13日
    浏览(65)
  • 删除neo4j所有内容,节点关系以及属性标签

    1.停止neo4j服务器 2.进入安装neo4j的目录删除两个文件夹 neo4j——data——databases 删除neo4j文件夹 neo4j——data——transactions 删除neo4j文件夹 即下图所示的两个文件夹 再打开neo4j会发现已经清空了所有数据

    2024年02月11日
    浏览(43)
  • 图数据库Neo4j——Neo4j简介、数据结构 & Docker版本的部署安装 & Cypher语句的入门

    MySQL是一种开源的关系型数据库管理系统,使用SQL作为其查询语言,常见的关系型数据库有MySQL、Oracle、SQL Server、PostgreSQL等。相关博客文章如下: 【合集】MySQL的入门进阶强化——从 普通人 到 超级赛亚人 的 华丽转身 PostgreSQL数据库——Docker版本的postgres安装 Navicat连接方式

    2024年02月06日
    浏览(63)
  • Neo4J 特性CQL语句,函数,Springboot集成

      随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系 网,传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随数据量呈几何级数增长, 急需一种支持海量复杂数据关系运算的数据库,图数据库应运而生

    2024年02月12日
    浏览(49)
  • Grafana+Echarts+Neo4j+SpringBoot 联合搭建节点实时拓扑图

                  后端研发经常也需要做一些运维的活,通常的解决方案是在各个服务组件上报一些指标数据到promethues,telegraf,大数据实时计算平台等等,之后通过告警消息和grafana折线图展示等方式来通知故障和展示异常。然而出问题的时候,告警群总是会有一大堆的告

    2024年04月27日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包