欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

php连接neo4j图数据库以及基本使用

程序员文章站 2022-05-28 20:28:04
...

阅读本博客前,请熟悉neo4j图数据库以及Cypher。

php连接neo4j图数据库的驱动下载地址(无下载积分可留言邮箱):

https://download.csdn.net/download/u013090676/10585050

本博客基于thinkphp框架,所以需要先在ThinkPHP\Library\Vendor\目录下创建neo4j文件夹,下载驱动代码在neo4j文件夹下解压。使用如下(控制器方法中使用):

1、引入库并创建ClientBuilder:

        //引入文件		
        require_once './ThinkPHP/Library/Vendor/neo4j/autoload.php';
		
        //注意此处只采用bolt进行连接neo4j:123456 为图数据库账号密码
	$client = ClientBuilder::create()
		/*->addConnection('default', 'http://neo4j:[email protected]:7474')*/
		->addConnection('bolt', 'bolt://neo4j:[email protected]:7687') 
		->build();

2、创建节点:

$result = $client->run('create (n:person) return n');

3、为节点添加属性:

$client->run('CREATE (n:god) SET n += {infos}', ['infos' => ['uid' => '8', 'name' => 'admin']]);

4、批量添加:

$stack = $client->stack();
$stack->push('CREATE (n:person {uid:2, name:"sakuya"})');
$stack->push('CREATE (n:person {uid:3, name:"marisa"})');
$stack->push('CREATE (n:person {uid:4, name:"reimu"})');
$stack->push('CREATE (n:person {uid:5, name:"yuyuko"})');
$stack->push('CREATE (n:person {uid:6, name:"youmu"})');
$stack->push('CREATE (n:person {uid:7, name:"suika"})');
$result = $client->runStack($stack);

5、添加关系(注意:neo4j目前不支持直接添加双向关系,如果是双向的关系,需要添加两次):

$result = $client->run('MATCH(m:person{name:"yuakri"}) MATCH(n:person{name:"sakuya"}) CREATE (m)-[r:friend{time:"1year"}]->(n)');

6、根据id删除节点(注意:这里的id是系统id,不是为节点添加的id属性,注意区别ID(n)与n.id):

$result = $client->run('MATCH (n:person) WHERE ID(n)=2 DELETE n');

7、删除所有节点(注意:有关系的节点必须先删除关系):

$result = $client->run('match(n) delete n');

8、删除所有带关系的节点以及其关系:

$result = $client->run('match(n)-[r]-() delete n,r');

 

相关标签: neo4j