NAME
Neo4j::Driver::Record - Container for Cypher result values
VERSION
version 0.11
SYNOPSIS
use Neo4j::Driver;
my $session = Neo4j::Driver->new->basic_auth(...)->session;
my $query = 'MATCH (m:Movie) RETURN m.name, m.year';
my $records = $session->run($query)->list;
foreach my $record ( @$records ) {
say $record->get('m.name');
}
$query .= ' ORDER BY m.year LIMIT 1';
my $record = $session->run($query)->single;
say 'Year of oldest movie: ', $record->get(1);
DESCRIPTION
Container for Cypher result values. Records are returned from Cypher statement execution, contained within a StatementResult. A record is a form of ordered map and, as such, contained values can be accessed by either positional index or textual key.
METHODS
Neo4j::Driver::Record implements the following methods.
get
my $value1 = $record->get('field_key');
my $value2 = $record->get(2);
Get a value from this record, either by field key or by zero-based index.
If there is only a single field, get
may be called without parameters.
my $value = $session->run('RETURN "It works!"')->single->get;
my $value = $session->run('RETURN "two", "fields"')->single->get; # fails
Nodes, relationships and maps are returned as hash references of their properties. Lists and paths are returned as array references. Boolean values are returned as JSON types; use !!
to force-convert to a plain Perl boolean value if necessary.
data
my $hashref = $record->data;
my $value = $hashref->{field_key};
Return the keys and values of this record as a hash reference.
EXPERIMENTAL FEATURES
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.
column_keys
my $size = $record->{column_keys}->count;
$record->{column_keys}->add('new_field_key');
Allows adding new columns to the record's field key / index resolution used by the get
method. Can be used to synthesize 'virtual' fields based on other data in the result. The new fields can then be accessed just like regular columns.
graph
my $nodes = $record->{graph}->{nodes};
my $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 before the statement is executed.
meta
my $meta = $record->{meta};
Allows accessing the entity meta data that some versions of the Neo4j server provide.
SEE ALSO
Neo4j::Driver, Neo4j Java Driver, Neo4j JavaScript Driver, Neo4j .NET Driver
AUTHOR
Arne Johannessen <ajnn@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2016-2019 by Arne Johannessen.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)