The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Neo4j::Driver::Type::Relationship - Describes a relationship from a Neo4j graph

VERSION

version 0.23

SYNOPSIS

 $q = "MATCH (a:Person)-[k:KNOWS]->(b:Person) RETURN k";
 $rel = $driver->session->run($q)->list->[0]->get('k');
 
 print 'Person # ', $rel->start_id;
 print ' ', $rel->type;
 print ' person # ', $rel->end_id;
 print ' since ', $rel->properties->{since};

DESCRIPTION

Describes a relationship from a Neo4j graph. A relationship may be a part of records returned from Cypher statement execution. Its description contains the relationship's properties as well as certain meta data, all accessible by methods that this class provides.

Neo4j::Driver::Type::Relationship objects are not in a one-to-one relation with relationships in a Neo4j graph. If the same Neo4j relationship is fetched multiple times, then multiple distinct Neo4j::Driver::Type::Relationship objects will be created by the driver. If your intention is to verify that two Neo4j::Driver::Type::Relationship objects in Perl describe the same node in the Neo4j database, you need to compare their IDs.

METHODS

Neo4j::Driver::Type::Relationship inherits all methods from Neo4j::Types::Relationship.

get

 $value = $relationship->get('property_key');

See "get" in Neo4j::Types::Relationship.

id

 $id = $relationship->id;

See "id" in Neo4j::Types::Relationship.

properties

 $hashref = $relationship->properties;
 $value = $hashref->{property_key};

See "properties" in Neo4j::Types::Relationship.

start_id

 $id = $relationship->start_id;

See "start_id" in Neo4j::Types::Relationship.

end_id

 $id = $relationship->end_id;

See "end_id" in Neo4j::Types::Relationship.

type

 $type = $relationship->type;

See "type" in Neo4j::Types::Relationship.

EXPERIMENTAL FEATURES

Neo4j::Driver::Type::Relationship implements the following experimental features. These are subject to unannounced modification or removal in future versions. Expect your code to break if you depend upon these features.

Deletion indicator

 $node_exists = ! $relationship->deleted;

In some circumstances, Cypher statements using DELETE may still RETURN relationships that were deleted. To help avoid confusion in such cases, the server sometimes reports whether or not a relationship was deleted.

This method is experimental because that information is not reliably available. In particular, there is a known issue with the Neo4j server (#12306), and old Neo4j versions may not report it at all. If unavailable, undef will be returned by this method.

BUGS

The value of properties named _meta, _relationship, _start, _end, or _type may not be returned correctly.

When using HTTP JSON, the type of relationships that are returned as part of a Neo4j::Driver::Type::Path is unavailable, because that information is not currently reported by the Neo4j server. undef is returned instead.

SEE ALSO

AUTHOR

Arne Johannessen <ajnn@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2016-2021 by Arne Johannessen.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)