neo4j 一些常用的CQL
创建节点、关系
创建节点(小明):create (n:people{name:’小明’,age:’18’,sex:’男’}) return n;
创建节点(小红): create (n:people{name:’小红’,age:’18’,sex:’女’}) return n;
创建关系(小明送礼物给小红):小明节点id为0,小红节点id为1
start a =node(0),b=node(1) create (a)-[n:gift]->(b)return n
属性查询
查询18岁的人
Match (n: people) where n.age = 18 return n
查询大于18岁的人
Match (n: people) where n.age > 18 return n
查询大于等于18岁的人
Match (n: people) where n.age >= 18 return n
查询不等于18岁的人
Match (n: people) where n.age <> 18 return n
关系查询
正向查询
查询小明送礼物给了哪些人,有两种写法:(以下例子类似)
Match (n:people)-[: gift]->(end:people) where n.name=’小明’ return end
Match (n:people{name: ‘小明’})-[:gift]->(end:people) return end
反向查询
查询哪些人送了礼物给小明
Match (n:people{name: ‘小明’})<-[:gift]-(end:people) return end
无方向查询
查询和小明有礼物来往的人
Match (n:people{name: ‘小明’})-[:gift]-(end:people) return end
ID查询
在neo4j中,每一个节点,会自动有一个唯一Id。
查找id为1的节点,有两种方式:
Start n = node(1) return n ---新版本已修改为下面方式
Match (n) where ID(n)=1 return n
级次查询(树形遍历)
这里写图片描述
以根部为条件,查询第二层的节点
Match (start:people{name:’小明’})-[:gift*2..2]->(end:people) return end
以根部为条件,查询第一层和第二层的节点
Match (start:people{name:’小明’})-[:gift*1..2]->(end:people) return end
以根部为条件,按级次查询出所有直接或间接获得过小明的礼物的人
Match (start:people{name:’小明’})-[:gift*]->(end:people) return end
Delete
删除2个节点之间的关系:
Match (x:people{name:’小明’})-[r:gift]->(y:people{name:’小红’}) delete r
删除节点,会删除和该节点有关的所有关系:
Match (n:people{name:’小红’}) delete n
Count
(不按属性)查询标签(people)中一共有多少节点(人):
Match (n:people) return count(n)
(按属性)查询标签(people)中年龄为18岁的一共有多少节点(人):
三种写法:
Match (n:people) where n.age=18 return count(n)
Match (n:people{age:’18’}) return count(n)
Match (n:people) return count(n.age=18)
Limit
查询标签(people)中的10个节点(人):
Match (n:people) return n limit 10
Distinct
查询标签(people)中所有的不同的age:
Match (n:people) return distinct(n.age)
Order by
根据标签(people)中的name 排序:
Match(n:people) return n order by name (默认升序)
Match(n:people) return n order by name asc (升序)
Match(n:people) return n order by name desc (降序)
Union all (Union)
求并集,不去重(去重用Union):
Match(n:people) where n.age=18 return n.name as name
Union all
Match(n:friend) where n.age=18 return n.name as name
In
查询id为0,5,8的节点:
Match (n) where ID(n) IN[0,5,8] return n
Exists
判断节点是否存在 name这个属性:
Match (n) where exists(n.name) return n
With
查询name以‘小’开头的节点:
Match (n) where n.name starts with ‘小’ return n
查询name以‘明’结尾的节点:
Match (n) where n.name ends with ‘明’ return n
Contains
查询name中含有 ‘小’的节点
Match (n) where n.name Contains ‘小’ return n
neo4j 一些常用的CQL的更多相关文章
- Neo4j数据库学习一:安装和数据类型常用命令简介
Neo4j数据库是图数据库 在数据库中,只有节点Nodes和关系Relationships Nodes用圆圈表示,Relationships用有向箭头表示 关系和节点都有属性(键值对) 安装3.3.7 ...
- 史上最全面的Neo4j使用指南
Neo4j图形数据库教程 Neo4j图形数据库教程 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章:安装 1.环境 2.下载 3.开启远程访问 4.测试 第三章:CQL 1 ...
- 史上超全面的Neo4j使用指南
Create by yster@foxmail.com 2018-7-10 我的博客:https://blog.csdn.net/yueshutong123 W3Cschool文档:https://w ...
- Neo4j图数据库从入门到精通
目录 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章:安装 1.环境 2.下载 3.开启远程访问 4.启动 第三章:CQL 1.CQL简介 2.Neo4j CQL命令/条款 ...
- Neo4j图数据库从入门到精通(转)
add by zhj: 转载时,目录没整理好,还会跳转到原文 其实RDB也可以存储多对多的关系,使用的是中间表,GDB使用的是边,RDB中的实体存储在数据表,而GDB存储在节点.两者使用的底层技术不同 ...
- Neo4j Cypher语法(一)
目录 Cypher手册详解 1 背景 2 唯一性 3 语法 3.1 命名规则 3.2 表达式 3.3 变量与保留关键字 3.4 参数 3.5 操作符 3.6 模式 3.7 列表 Cypher手册详解 ...
- 【图数据库】史上超全面的Neo4j使用指南
转自:https://cloud.tencent.com/developer/article/1336299 在这篇文章中: 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章 ...
- Neo4j入门之中国电影票房排行浅析
什么是Neo4j? Neo4j是一个高性能的NoSQL图形数据库(Graph Database),它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持 ...
- 关于neo4j初入门(4)
关于admin管理员 数据库备份和恢复 Neo4j数据库备份 步骤1 -点击“Neo4j Community”,如下图所示 Windows“开始”按钮>> "All Progra ...
随机推荐
- Redis学习存档(2)——通过Java使用Redis:Jedis
一.创建项目,引入jedis jar包 可在百度搜索maven repository 进入后搜索jedis,复制依赖包到pom.xml文件中 <project xmlns="http: ...
- Asp.net core 学习笔记 Node Service
我们知道 npm 是很大的库,很多轮子可以用 所以 .net core 替我们封装了一个调用 nodejs 的 service 就叫 node service 我们只要在 server 安装 node ...
- IntelliJ IDEA热部署插件JRebel免费激活图文教程(持续更新)转载
之前教了大家如何免费激活IDEA,大家学会了吗?今天再来教大家如何免费激活JRebel插件,实现真正的热部署,无论是改了代码片段还是配置文件,都可以做到不用重新启动就生效,这种酸爽,谁用谁知道! 这次 ...
- js date对象传参获取特定日期的时间戳
当我们想要通过js获取某一特定时间的时间戳时,会通过给date对象传参再通过getTime函数来获取,传递的参数格式也有不同形式.有些时候,可能会因为自己传入参数的格式不正确而导致date对象inva ...
- JS中逗号运算符的用法
逗号运算符,它将先计算左边的参数,再计算右边的参数值.然后返回最右边参数的值. 原书举的例子不太好,无法解释上面那句话,这里另外提供一个: var a = 10, b = 20; function C ...
- 公共的强制保留两位小数的js方法
强制保留两位小数的js方法 //写一个公共的强制保留两位小数的js方法 function toDecimal2 (x) { var f = parseFloat(x) if (isNaN(f)) { ...
- python matplotlib 折线图
1.绘制折线图,去上和右边框,显示中文 import numpy as np import matplotlib.pyplot as plt #plt.style.use('default') #pl ...
- SIP中From ,Contact, Via 和 Record-Route/Route
转载:http://eadgar.blogbus.com/logs/374635.html 注意:以下内容适用于SIP消息中,在具体的应用环境中,例如IMS,每个消息头都有其他独特的意义,但不会和以下 ...
- react快速上手一(使用js语法,创建虚拟DOM元素)
1.装包,引包 首先需要安装两个包 react ,react-dom cnpm i react react-dom 介绍下这两个包: react:专门用来创建React组件,组件生命周期等这些东西. ...
- Java攻城狮面试题录:笔试篇(1)
1.作用域public,private,protected,以及不写时的区别答:区别如下:不写时默认为friendly 2.ArrayList和Vector的区别,HashMap和Hashtable的 ...