Neo4j::Driver::Record - Container for Cypher result values


version 0.27


 use Neo4j::Driver;
 $session = Neo4j::Driver->new->basic_auth(...)->session;
 $query = 'MATCH (m:Movie) RETURN, m.year';
 $records = $session->run($query)->list;
 foreach $record ( @$records ) {
   say $record->get('');
 $query .= ' ORDER BY m.year LIMIT 1';
 $record = $session->run($query)->single;
 say 'Year of oldest movie: ', $record->get(1);


Container for Cypher result values. Records are returned from Cypher statement execution, contained within a Result. A record is a form of ordered map and, as such, contained values can be accessed by either positional index or textual key.


Neo4j::Driver::Record implements the following methods.


 $value1 = $record->get('field_key');
 $value2 = $record->get(2);

Get a value from this record, either by field key or by zero-based index.

When called without parameters, get() will return the first field. If there is more than a single field, a warning in the category ambiguous will be issued.

 $value = $session->run('RETURN "It works!"')->single->get;
 $value = $session->run('RETURN "warning", "ambiguous"')->single->get;

When retrieving values from records, Neo4j types are converted to Perl types as shown in the following table.

 Neo4j type      resulting Perl type
 ----------      -------------------
 Number          scalar
 String          scalar
 Boolean         JSON::PP::true or JSON::PP::false
 null            undef
 Node            Neo4j::Types::Node
 Relationship    Neo4j::Types::Relationship
 Path            Neo4j::Types::Path
 List            array reference
 Map             hash reference

Boolean values are returned as JSON types; use !! to force-convert to a plain Perl boolean value if necessary.

Neo4j types are currently implemented by the following packages:

In a future version of this driver, values retrieved over a Bolt connection will be implemented by other packages, but they will continue to inherit from Neo4j::Types and have that interface.


 $hashref = $record->data;
 $value = $hashref->{field_key};

Return the keys and values of this record as a hash reference.


Neo4j::Driver::Record 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.


 $nodes = $record->{graph}->{nodes};
 $rels  = $record->{graph}->{relationships};

Allows accessing the graph response the Neo4j server can deliver via HTTP. Requires the return_graph field to be set on the Transaction and Jolt to be disabled (which is not recommended) before the statement is executed.



Arne Johannessen <>


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

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)