Mark Allen Jensen > REST-Neo4p-0.1284 > REST::Neo4p::Query

Download:
REST-Neo4p-0.1284.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  1
Open  8
View/Report Bugs
Module Version: 0.1283   Source   Latest Release: REST-Neo4p-0.3003

NAME ^

REST::Neo4p::Query - Execute Neo4j Cypher queries

SYNOPSIS ^

 REST::Neo4p->connect('http:/127.0.0.1:7474');
 $query = REST::Neo4p::Query->new('START n=node(0) RETURN n');
 $query->execute;
 $node = $query->fetch->[0];
 $node->relate_to($other_node, 'link');

DESCRIPTION ^

REST::Neo4p::Query encapsulates Neo4j Cypher language queries, executing them via REST::Neo4p::Agent and returning an iterator over the rows, in the spirit of DBI.

Streaming

execute() captures the Neo4j query response in a temp file. fetch() iterates over the JSON in the response using JSON::Streaming::Reader. So go ahead and make those 100 meg queries. The tempfile is unlinked after the iterator runs out of rows, or upon object destruction, which ever comes first.

METHODS ^

new()
 $stmt = 'START n=node({node_id}) RETURN n';
 $query = REST::Neo4p::Query->new($stmt,{node_id => 1});

Create a new query object. First argument is the Cypher query (required). Second argument is a hashref of parameters (optional).

execute()
 $numrows = $query->execute;

Execute the query on the server. Not supported in batch mode.

fetch(), fetchrow_arrayref()
 $query = REST::Neo4p::Query->new('START n=node(0) RETURN n, n.name');
 $query->execute;
 while ($row = $query->fetch) { 
   print 'It works!' if ($row->[0]->get_property('name') == $row->[1]);
 }

Fetch the next row of returned data (as an arrayref). Nodes are returned as REST::Neo4p::Node objects, relationships are returned as REST::Neo4p::Relationship objects, scalars are returned as-is.

err(), errstr()
  $query->execute;
  if ($query->err) {
    printf "status code: %d\n", $query->err;
    printf "error message: %s\n", $query->errstr;
  }

Returns the HTTP error code and Neo4j server error message if an error was encountered on execution. Set $query->{RaiseError} to die immediately (e.g., to catch the exception in an eval block).

SEE ALSO ^

REST::Neo4p, REST::Neo4p::Path,REST::Neo4p::Agent.

AUTHOR ^

   Mark A. Jensen
   CPAN ID: MAJENSEN
   majensen -at- cpan -dot- org

LICENSE ^

Copyright (c) 2012 Mark A. Jensen. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: