02-neo4j的基本命令
来源:互联网 发布:微波遥感数据 编辑:程序博客网 时间:2024/06/17 21:59
1.插入节点。插入一个Person类别的节点,且这个节点有一个属性name,属性值为Andres
CREATE (n:Person {name : '梁川川'});CREATE (n:Person {name : '谢静静'});CREATE (n:Person {name : '谢霆锋',relation : "大舅"});CREATE (n:Person {name : '谢2',relation : "2舅"});CREATE (n:Person {name : '谢3',relation : "3舅"});CREATE (n:Person {name : '谢4',relation : "4舅"});
2.插入边。插入一条a到b的有向边,且边的类别为Follow r后面是关系
MATCH (a:Person),(b:Person)WHERE a.name = '梁川川' AND b.name = '谢静静'CREATE (a)-[r:喜欢]->(b);MATCH (a:Person),(b:Person)WHERE a.name = '谢静静' AND b.name = '谢霆锋'CREATE (a)-[r:大舅]->(b);MATCH (a:Person),(b:Person)WHERE a.name = '谢静静' AND b.name = '谢2'CREATE (a)-[r:二舅]->(b);MATCH (a:Person),(b:Person)WHERE a.name = '谢静静' AND b.name = '谢3'CREATE (a)-[r:三舅]->(b);MATCH (a:Person),(b:Person)WHERE a.name = '谢静静' AND b.name = '谢4'CREATE (a)-[r:权重4]->(b);CREATE (a)-[r:4]->(b); r后面不能直接是数字CREATE (a)-[r:"4"]->(b); 加双引号 单引号都不行CREATE (a)-[r:权重4]->(b); 这样可以
3.更新节点。更新一个Person类别的节点,设置新的name。
MATCH (n:Person { name: '谢4' })SET n.name = '谢贵波';
- 删除节点。删除这个节点和这个节点有关的联系
MATCH (n:Person { name:'谢3' })DETACH DELETE n;CREATE (n:Person {name : '谢三舅',hobby : "看书"});CREATE (n:Person {name : '谢美美',hobby : "玩游戏"});MATCH (a:Person),(b:Person)WHERE a.name = '谢静静' AND b.name = '谢三舅'CREATE (a)-[r:三舅]->(b);MATCH (a:Person),(b:Person)WHERE a.name = '谢三舅' AND b.name = '谢美美'CREATE (a)-[r:女儿]->(b);MATCH (n:Person { name:'谢三舅' })DETACH DELETE n;MATCH (a:Person),(b:Person)WHERE a.name = '谢静静' AND b.name = '谢美美'CREATE (a)-[r:表妹]->(b);
5.删除边
MATCH (a:Person)-[r:Follow]->(b:Person)WHERE a.name = '梁川川' AND b.name = '谢静静'DELETE r;
6.查询最短路径。
MATCH (ms:Person { name:'梁川川' }),(cs:Person { name:'谢静静' }), p = shortestPath((ms)-[r:喜欢]-(cs)) RETURN p;CREATE (n:Person {name : '谢美颜',hobby : "看书"});MATCH (a:Person),(b:Person)WHERE a.name = '谢美美' AND b.name = '谢美颜'CREATE (a)-[r:姐妹]->(b);MATCH (ms:Person { name:'梁川川' }),(cs:Person { name:'谢美颜' }), p = shortestPath((ms)-[r:姐妹]-(cs)) RETURN p;(no changes, no records)
中间隔了一个不同的关系
7.查询两个节点之间的关系。
MATCH (a:Person { name:'梁川川' })-[r]->(b:Person { name:'谢美颜' })RETURN type(r);(no changes, no records)MATCH (a:Person { name:'梁川川' })-[r]->(b:Person { name:'谢静静' })RETURN type(r);"喜欢"
8.查询一个节点的所有Follower。
**MATCH (:Person { name:'谢静静' })-[r:喜欢]->(Person)RETURN Person.name;(no changes, no records)MATCH (:Person { name:'梁川川' })-[r:喜欢]->(Person)RETURN Person.name;"谢静静"**
关系是单向的
java版第一个程序
新建maven项目
从官网下载drive不好用,我是直接从 maven repository 查询的
<!-- https://mvnrepository.com/artifact/org.neo4j.driver/neo4j-java-driver --> <dependency> <groupId>org.neo4j.driver</groupId> <artifactId>neo4j-java-driver</artifactId> <version>1.4.5</version> </dependency>
通过代码创建节点
/** * Hello world! * */public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); Create(); } private static void Create() { // Driver driver = GraphDatabase.driver( "bolt://127.0.0.1", AuthTokens.basic( 用户名, 密码 ) ); Driver driver = GraphDatabase.driver( "bolt://127.0.0.1", AuthTokens.basic( "neo4j", "541711153" ) ); Session session = driver.session(); session.run( "CREATE (n:Person {name : '陈浩杰',hobby : '看书'})" ); session.close(); driver.close(); }}
执行可以看到页面http://127.0.0.1:7474/browser/ 多了一个节点
通过代码查询节点
private static void Query() { Driver driver = GraphDatabase.driver( "bolt://localhost", AuthTokens.basic( "neo4j", "541711153" ) );//调用地址,用户名和密码 Session session = driver.session(); StatementResult result = session.run( "MATCH (a: Person) WHERE a.name = '谢静静' RETURN a.name AS name" ); while ( result.hasNext() ) { Record record = result.next(); System.out.println( record.get("name").asString() ); } session.close(); driver.close(); }
============没试过
创建唯一性约束,同时具有索引效果,类似关系型数据库中的主键。注意,这只能在数据库中还未插入数据时设置。
CREATE CONSTRAINT ON (a:Person) ASSERT a.name IS UNIQUE;
创建索引。
CREATE INDEX ON :Person(name);
查看所有的节点数和边数
MATCH (n) RETURN count(n);
MATCH ()–>() RETURN count(*);
阅读全文
0 0
- 02-neo4j的基本命令
- Neo4j的基本配置项
- 数据库~neo4j的基本语句
- Python操作Neo4j的基本操作
- Neo4j入门一基本操作
- neo4j的使用一
- neo4j的使用二
- neo4j的入门示例
- Neo4j数据库的事务
- Neo4j的存储结构
- Neo4j简单的例子
- neo4j的理解
- neo4j的安装
- neo4j 的操作
- neo4j的使用感悟
- Neo4j的CQL语法
- neo4j的使用
- Neo4j
- volatile详解
- 【iOS】push控制器时隐藏tabbar,dismiss控制器时显示tabbar
- Python学习-turtle画图
- 43. Multiply Strings
- Java变量,形参,实参
- 02-neo4j的基本命令
- JDBC&CRUD练习
- listbox1中内容加到listbox2中
- cocos2dx作茧自缚修改creator_to_cocos2dx(一)
- POJ
- 伪知识之了解数据库中备份集中的数据库备份与现有的数据库问题的解决方式持续更新:【内向即失败--王奕君】
- Linux下MySQL的安装
- group by 如何自定义规则分组,合并分组
- M进制转10进制