php neo4j图数据库查询与遍历

2 篇文章 0 订阅

在上一篇博客中,介绍了php连接neo4j图数据库以及基本使用,博客地址:

https://blog.csdn.net/u013090676/article/details/81435944

本文继续介绍php 对neo4j图数据库进行查询,遍历,下面直接上代码:

1、查询节点以及关系:

$result = $client->run('MATCH (m:person{name:"suika"})-[r]-(n) RETURN m,r,n');
foreach ($result->getRecords() as $r) {
    //获取节点标签
    print_r($r->get('n')->labels());
    //获取节点所有属性的值
    print_r($r->get('n')->values());
    //获取节点所有属性的key
    print_r($r->get('n')->keys());
    //获取节点某个属性的值,不存在则返回空
    print_r($r->get('n')->value("uid"));
    //获取关系类型
    print_r($r->get('r')->type());
    //获取关系属性
    print_r($r->get('r')->value('time'));exit();
}

2、遍历与节点相关联的节点以及节点所处的层级:

$result = $client->run('Match (m:person{name:"marisa"})-[r:friend*]->(n:person) return n,r');
foreach ($result->getRecords() as $r) {
    //关系层级(不是最小层级)
    print_r(count($r->get('r')));
    //节点
    print_r($r->get('n')->value("name"));

}

3、获取两个节点间的所有路径:

$result = $client->run('Match p=(m:person{name:"marisa"})-[r:friend*]->(n:person{name:"sakuya"}) return p');
foreach ($result->getRecords() as $r) {
    //路径
    $path = $r->pathValue("p");
    //路径序列(节点与关系交叉组成)
    $seq = $r->pathValue("p")->sequence;
    //节点
    $nodes = $path->nodes();
    //关系
    $relationships = $path->relationships();
    for($i = 0;$i < count($seq);$i++){
        if($i%2 == 1){
            if($nodes[$seq[$i]]){
                print_r($nodes[$seq[$i]]->value("name"));
            }else{
                print_r("存在空记录");
            }
        }else{
            if($relationships[$seq[$i]-1]){
                $type = $relationships[$seq[$i]-1]->type();
                $time = $relationships[$seq[$i]-1]->value("time");
            }else{
                print_r("存在空记录");
            }
        }
	print_r("->");
    }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值