Neo4j:图数据库GraphDB(三)

本片继续前几篇介绍图数据库的创建,有疑问可以我的看看前两篇文章:http://www.cnblogs.com/rongyux/p/5537206.html

四 图数据库的创建

1 创建一个节点   Person {name: "My Name"}

CREATE (me:Person {name: "My Name"}) return me;

CREATE (movie:Movie {title: "Mystic River", released:1993})
RETURN movie;

2修改属性

更改属性 : movie.tagline = "We bury our sins here, Dave. We wash them clean."

MATCH (movie:Movie)
WHERE movie.title="Mystic River"
SET movie.tagline = "We bury our sins here, Dave. We wash them clean."
RETURN movie;

更改 : movie.released = 2003

MATCH (movie:Movie)
WHERE movie.title="Mystic River"
SET movie.released = 2003
RETURN movie;

3 增加关系-边

MATCH (me:Person), (movie:Movie)
WHERE me.name="My Name" AND
      movie.title="Mystic River"
CREATE (me)-[:REVIEWED {rating:80, summary:"tragic character movie"}]->(movie);

另一种写法:

MATCH (me:Person {name:"My Name"}),
      (movie:Movie {title:"Mystic River"})
CREATE (me)-[:REVIEWED {rating:80, summary:"tragic character movie"}]->(movie);

4merge:若不存在这个边,则增加这条关系:

MATCH (clint:Person),(mystic:Movie)
WHERE clint.name="Clint Eastwood" AND mystic.title="Mystic River"
MERGE (clint)-[:DIRECTED]->(mystic)
RETURN clint, mystic;

复杂一点的例子:

增加认识 knows关系:一部电影的演员与演员,演员或导演,或导演与导演之间可能认识:

MATCH (a)-[:ACTED_IN|:DIRECTED]->()<-[:ACTED_IN|:DIRECTED]-(b)
WHERE NOT (a)-[:KNOWS]-(b)
MERGE (a)-[:KNOWS]->(b);

5 删除节点和边

MATCH (me:Person {name="My Name"})
OPTIONAL MATCH (me)-[r]-()
DELETE me,r;

6 长度等级输出

MATCH (node1)-[*]-(node2)

eg。MATCH (node1)-[*1..3]-(node2) :  三个长度等级的输出

7 shortestPath函数返回路径长度最短的path

MATCH p=shortestPath( (node1)-[*]-(node2) )
   RETURN length(p), nodes(p)
时间: 2024-10-28 16:06:49

Neo4j:图数据库GraphDB(三)的相关文章

Neo4j:图数据库GraphDB(二)

接着上一篇,继续介绍图数据库Neo4j: http://www.cnblogs.com/rongyux/p/5537028.html 三 高级查找操作 1过滤   name = "Tom Hanks"的人 MATCH (n:Person) WHERE n.name = "Tom Hanks" RETURN n; 另一种写法: MATCH (n:Person {name:"Tom Hanks"}) RETURN n; 2 排序Order, 限制Li

Neo4j:图数据库GraphDB(一)

图数据库的代表:Neo4j 官网:  http://neo4j.com/ 引言:为什么使用图数据库 在很多新型项目中,应用图数据库已经是势在必行的趋势了,因为图数据库可以很好的表示各种节点与关系的概念,并且可以很友好的可视化出来,大大方便了我们的数据管理和展示工作. 下面均以演员,导演和电影的图关系做介绍: 一 概念 节点: (a) //actors (m) //movies ( ) //some anonymous nod 关系: -[r]-> //a relationship referre

Neo4j图数据库应用开发之一:Neo4j Java 工具包

1 应用开发概述 基于数据传输效率以及接口自定义等特殊性需求,我们暂时放弃使用Neo4j服务器版本,而是在Neo4j嵌入式版本的基础上进行一些封装性的开发.封装的重点,是解决Neo4j嵌入式版本EmbeddedGraphDatabase中不能同时创建多个实例指向同一个数据库的问题.如果开发人员使用Neo4j嵌入式版本作为数据库,要想实现多个程序共享一个数据库,这将是一个不可回避的问题.本手册给出的解决方案是“构建一个中间服务层,提供各种接口方法,指向同一个数据库实例:其他客户端程序通过中间服务层

neo4j 图数据库安装及介绍

neo4j 图数据库安装及介绍 一.neo4j图数据库介绍 图数据库,顾名思义就是利用了"图的数据结构来作为数据存储逻辑体现的一种数据库",所以要想学好图数据库当然需要了解一些关于图数据结构的算法!同样的作为图数据结构中很多常用的算法在图数据库中是默认提供支持的,对数据进行查询.计算的操作,比如常见的最短路径算法.pagerank算法等等这些算法,都是图数据结构中常见的算法!当然了neo4j作为一个图数据库当然也会提供这些算法的实现,方便使用者对数据进行操作! 那么图数据结构具体又包含

Neo4j图数据库从入门到精通

目录 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章:安装 1.环境 2.下载 3.开启远程访问 4.启动 第三章:CQL 1.CQL简介 2.Neo4j CQL命令/条款 3.Neo4j CQL 函数 4.Neo4j CQL数据类型 第四章:命令 1.CREATE创建 2.MATCH查询 3.RETURN返回 4.关系基础 5.WHERE子句 6.DELETE删除 7.REMOVE删除 8.SET子句 9.ORDER BY排序 10.UNION子句 11.LIMIT

Neo4j视频教程 Neo4j 图数据库视频教程

课程发布地址 地址: 腾讯课堂<Neo4j 图数据库视频教程> https://ke.qq.com/course/327374?tuin=442d3e14 作者 庞国明,<Neo4j权威指南>副主编.<Neo4j 3.x 入门经典>翻译 邮箱:[email protected] QQ:1143815700 Neo4j技术讨论QQ群:547190638 Neo4j中文社区:http://neo4j.com.cn 面向人群 Neo4j初学者:已掌握一定Neo4j技术的开发人

Neo4j教程 Neo4j视频教程 Neo4j 图数据库视频教程

课程发布地址 地址: 腾讯课堂<Neo4j 图数据库视频教程> https://ke.qq.com/course/327374?tuin=442d3e14 作者 庞国明,<Neo4j权威指南>副主编.<Neo4j 3.x 入门经典>翻译 邮箱:[email protected] QQ:1143815700 Neo4j技术讨论QQ群:547190638 Neo4j中文社区:http://neo4j.com.cn 面向人群 Neo4j初学者:已掌握一定Neo4j技术的开发人

使用neo4j图数据库的import工具导入数据 -方法和注意事项

背景 最近我在尝试存储知识图谱的过程中,接触到了Neo4j图数据库,这里我摘取了一段Neo4j的简介: Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中.Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性.程序员工作在一个面向对象的.灵活的网络结构下而不是严格.静态的表中--但是他们可以享受到具备完全的事务

Neo4j图数据库管理系统开发笔记之三:构建安全的RMI Service(Server)

RMI Server(服务端)主要包括以下功能:远程用户权限验证管理.远程服务接口实现类.Neo4j实体映射转换等.项目目录结构如下图所示: 3.2.1 远程用户权限验证管理 3.2.1.1 用户权限验证机制 用户权限验证机制分为三个层级. 第一级,远程主机IP地址验证.检查是否允许远程主机IP地址访问RMI服务. 第二级,远程用户信息验证.检查用户名称和密码是否正确,用户是否启用等. 第三级,远程服务及接口方法验证.检查用户是否有权访问某个RMI服务以及服务下的指定接口方法. 3.2.1.2