neo4j使用笔记
#coding:utf-
__author__ = 'similarface' # 安装驱动:pip install neo4j-driver
from neo4j.v1 import GraphDatabase #建立连接
driver=GraphDatabase.driver("bolt://localhost:7687", auth=("***", "***")) #添加数据
def add_friends(tx, name, friend_name):
tx.run("MERGE (a:Person {name: $name}) "
"MERGE (a)-[:KNOWS]->(friend:Person {name: $friend_name})",
name=name, friend_name=friend_name)
#查询数据
def print_friends(tx, name):
for record in tx.run("MATCH (a:Person)-[:KNOWS]->(friend) WHERE a.name = $name "
"RETURN friend.name ORDER BY friend.name", name=name):
print(record["friend.name"]) with driver.session() as session:
session.write_transaction(add_friends, "刘备", "关羽")
session.write_transaction(add_friends, "刘备", "张飞")
session.write_transaction(add_friends, "刘备", "孔明")
session.read_transaction(print_friends, "刘备")
#导入数据
LOAD CSV WITH HEADERS FROM 'file:/all_samples.csv' AS line
CREATE (:User {barcode:line.barcode, name: line.name, sex: toInteger(line.sex),birthday:toInteger(replace(line.birthday, "-", "")),address:line.address}) #更新数据
LOAD CSV WITH HEADERS FROM 'file:/test.csv' AS line
merge(p:User {barcode:line.barcode})
on match set p.birthday=toInteger(line.birthday) return p.birthday
#创建索引
CREATE INDEX ON :User(name)
LOAD CSV WITH HEADERS FROM 'file:/all_shipv.csv' AS line
match(p:User {barcode:line.barcode1})
match(q:User {barcode:line.barcode2})
create (p)-[:s {v:line.shipv,c:line.centimorgan}]->(q)
#查询barcode为********* 并且它存在5个朋友
MATCH (n {barcode: '*********'})-[:s]-(friend)
WITH n, count(friend) AS friendsCount
WHERE friendsCount > 5
RETURN n, friendsCount
#查找barcode为********* 的朋友的朋友
MATCH (user:User { barcode: '*********' })-[r1:s]-()-[r2:s]-(friend_of_a_friend)
RETURN friend_of_a_friend.name AS fofName
#查找barcode为********* 的朋友的朋友 会返回更多的数据包括自己
MATCH (user:User { barcode: '*********' })-[r1:s]-(friend)
MATCH (friend)-[r2:s]-(friend_of_a_friend)
RETURN friend_of_a_friend.name AS fofName
同上:
MATCH (user:User { barcode: '*********' })-[r1:s]-(friend),(friend)-[r2:s]-(friend_of_a_friend)
RETURN friend_of_a_friend.name AS fofName
#如何反应flag字段
MATCH (n:User)
RETURN
CASE n.sex
WHEN 1
THEN '男'
WHEN 0
THEN '女'
ELSE '未知' END AS result ,n.name
#另一种格式的case
MATCH (n)
RETURN
CASE
WHEN n.eyes = 'blue'
THEN 1
WHEN n.age < 40
THEN 2
ELSE 3 END AS result
#UNWIND子句是把列表数据展开成一行一行的数据
neo4j使用笔记的更多相关文章
- Neo4j学习笔记(1)——使用API编写一个Hello World程序
项目的创建及配置 因为Neo4j依赖的jar包比较多,所以推荐使用Maven来管理. 首先创建一个Maven Project,添加依赖: <dependency> <groupId& ...
- Neo4j学习笔记(2)——数据索引
和关系数据库一样,Neo4j同样可以创建索引来加快查找速度. 在关系数据库中创建索引需要索引字段和指向记录的指针,通过索引可以快速查找到表中的行. 在Neo4j中,其索引是通过属性来创建,便于快速查找 ...
- neo4j 学习笔记
1.参考 https://blog.csdn.net/appleyk/article/category/7408344 系列文章 (不支持 spring boo 2.0 以下的,入门可做参考) 2.底 ...
- Neo4j学习笔记
1. 环境搭建 正好最近同学有一台阿里云服务器借我玩,就尝试着在服务器上搭了Neo4j. 环境:CentOS Linux release 7.4.1708 (Core) 安装Java 安装Neo4j需 ...
- Neo4j学习笔记(1)——使用Java API实现简单的增删改查
阅读目录 项目的创建及配置 使用嵌入式数据库 创建节点和关系 查询及更新 删除关系和节点 完整代码 参考资料 回到顶部 项目的创建及配置 因为Neo4j依赖的jar包比较多,所以推荐使用Maven来管 ...
- Neo4j 学习笔记(-)
Neo4j 的使用说明(一)(基于V3.4.9) 下一篇(二):https://www.cnblogs.com/infoo/p/11947467.html 一.Neo4j简介 Neo4j是一个高性能的 ...
- 暑假学习笔记(一)——初识Neo4j和APICloud入门
暑假学习笔记(一)--初识Neo4j和APICloud入门 20180719笔记 1.Neo4j 接了学姐的系统测试报告任务,感觉工作很繁重,但是自己却每天挥霍时光.9月份就要提交系统测试报告了,但是 ...
- Neo4j/cypher学习笔记与学习建议
简介 本笔记的主要内容是 cypher 查询语言的编写与使用. 笔记主要整理自w3cschool上的neo4j教程以及Neo4j中文网所提供的cypher中文文档,此外还包括少量从其他个人博客与官方手 ...
- Neo4j图数据库管理系统开发笔记之一:Neo4j Java 工具包
1 应用开发概述 基于数据传输效率以及接口自定义等特殊性需求,我们暂时放弃使用Neo4j服务器版本,而是在Neo4j嵌入式版本的基础上进行一些封装性的开发.封装的重点,是解决Neo4j嵌入式版本Emb ...
随机推荐
- java/eclipse/myeclipse建立.properties文件的方法
相比较来说,Java程序的编写相对简单很多,多数文件都可以通过编写文本文件生成! 对于不用IDE的java程序来讲,只需要右键新建>文本文件,建立好以后写好代码,另存为xx.prop ...
- centOS6.5 Hadoop1.0.4安装
前段时间去培训,按照教程装了一遍Hadoop.回来又重新装一次,捋下思路,加深理解. 基本配置如下,三个节点,一个namenode,两个datanode. Namenode 192.168.59.14 ...
- raymarching
http://www.michaelwalczyk.com/blog/2017/5/25/ray-marching https://kosmonautblog.wordpress.com/2017/0 ...
- 关于RECOVERY清除数据的分析
[前言] 讨论:双清和清空所有数据的问题 说明:以前写的帖子都写三清,那个是为了保险起见才叫大家三项清除,毕竟人都有刚开始的时候,但看了郭贤普的帖子<系统与数据兼容性测试>之后,我觉得有必 ...
- 【Web】Rest API 验证授权如何做?
参考资料: [Web]Rest && 权限管理等:http://www.itdadao.com/2016/03/15/593144/ 无需OAuth就可以设计一个安全的REST (We ...
- needtrue需要真实的答案
现在从底层做起来,相当的不容易啊,无论是哪个行业,每个人都需要付出很多的努力.但是现在人们的心是浮躁的,都想一下得到自己想要的东西,钱也好,车也好,房子也好,女人也好.最近很喜欢两句话,这里写下来与大 ...
- JS-产生随机数的几个用法!
<script> function GetRandomNum(Min,Max) { var Range = Max - Min; var Rand = Math.random(); ret ...
- 2017.12.25 Mybatis物理分页插件PageHelper的使用(二)
参考来自: 官方文档的说明:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md 上篇博客 ...
- 将本地jar包添加到maven中
将需要引入的jar包拷贝到maven项目的WEB-INF/lib中 在pom.xml中配置如下: <dependency> <groupId>com.xxxxx.union&l ...
- 矩阵LU分解分块算法实现
本文主要描述实现LU分解算法过程中遇到的问题及解决方案,并给出了全部源代码. 1. 什么是LU分解? 矩阵的LU分解源于线性方程组的高斯消元过程.对于一个含有N个变量的N个线性方程组,总可以用高斯消去 ...