NAME

Neo4j::Bolt::Path - Representation of a Neo4j Path

SYNOPSIS

$q = 'MATCH p=(n1)-[r]->(n2) RETURN p';
$path = ( $cxn->run_query($q)->fetch_next )[0];

($n1, $r, $n2) = @$path;

@nodes         = grep { ref eq 'Neo4j::Bolt::Node' } @$path;
@relationships = grep { ref eq 'Neo4j::Bolt::Relationship' } @$path;

$start_node = $path->[0];
$end_node   = $path->[@$path - 1];
$length     = @$path >> 1;  # number of relationships

$arrayref = $path->as_simple;

DESCRIPTION

Neo4j::Bolt::Path instances are created by executing a Cypher query that returns paths from a Neo4j database. Their nodes, relationships and metadata can be accessed as shown in the synopsis above.

This class conforms to the Neo4j::Types::Path API, which offers an object-oriented interface to the paths's elements and metadata. This is entirely optional to use.

If a query returns the same path twice, two separate Neo4j::Bolt::Path instances will be created.

METHODS

This class provides the following methods defined by Neo4j::Types::Path:

The following additional method is provided:

as_simple()
$simple  = $path->as_simple;

Get path as a simple arrayref in the style of REST::Neo4p.

The simple arrayref is unblessed, but is otherwise an exact duplicate of the Neo4j::Bolt::Path instance.

SEE ALSO

Neo4j::Bolt, Neo4j::Types::Path

AUTHOR

Arne Johannessen
CPAN: AJNN

LICENSE

This software is Copyright (c) 2020-2024 by Arne Johannessen.

This is free software, licensed under:

The Apache License, Version 2.0, January 2004