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 ...
随机推荐
- pyqt5生成的APP制作DMG
http://blog.csdn.net/wudj810818/article/details/70557284 1.环境 Mac OS Python3.5 PyQt5 2.所需工具 Pyinstal ...
- 【LaTeX】E喵的LaTeX新手入门教程(4)图表
这里说的不是用LaTeX画图,而是插入已经画好的图片..想看画图可以把滚动条拉到底.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新手入门教程(2)基础 ...
- fiddler在ios10.3系统抓包https失败原因解决
一直是按照以往的设置抓包,设置代理ip,通过Safari下载安装证书,抓包https怎么显示证书无效呢?难道证书被apple设为黑名单了?google后发现,IOS10.3以后,安装了证书不是默认启用 ...
- DevExpress 中 DateEdit 控件 格式化显示和编辑的日期格式为: yyyy-MM-dd
摘自: http://blog.sina.com.cn/s/blog_76b5256c0100zkwk.html 1需要显示的日期为2012年3月12日需要如下设置 Properties-Mask-E ...
- C# Json 序列化和反序列化 工具类 Newtonsoft.Json.dll
引用: Newtonsoft.Json.dll // 引用: using Newtonsoft.Json; using Newtonsoft.Json.Converters; // 定义 实体测试类 ...
- 练oj时的小技巧(大多都在oj记录里,这是被忘记的部分)
1. getline()函数,头文件为#include<string> getline(istream &in, string &s):从输入流读入一行到string s ...
- chkconfig 检查、设置系统的各种服务
chkconfig 检查.设置系统的各种服务 学习了:http://man.linuxde.net/chkconfig chkconfig --add 某某服务
- java线程总结(2/5)
线程基本信息和优先级别 方 法 功 能 isAlive() 判断线程是否还“活”着,即线程是否还未终止. getPriority() 获得线程的优先级数值 setPriority() ...
- Quartz JobStore管理Job
Quartz提供了RAMJobStore和JDBC JobStore两种方式用来Job,RAMJobStore将Job任务存入内存中,速度快:JobStore采用数据库的方式管理中,本文介绍JobSt ...
- Textarea自动适用高度且无滚动条解决方案
今日的系统需要动态显示一项数据库里面的内容,该内容包含换行等格式字符,要求如实的反应在页面上. 最初解决办法是使用textarea控件,代码如下: <textarea style="b ...