NAME
ArangoDB::Statement - ArangoDB AQL handler
SYNOPSIS
use ArangoDB;
my $db = ArangoDB->new({
host => 'localhost',
port => 8529,
});
my $sth = $db->query('FOR u IN users FILTER u.active == true RETURN u');
my $cursor = $sth->execute({
do_count => 1,
batch_size => 10,
});
while( my $doc = $cursor->next() ){
# do something
}
# Use bind variable
my $documents = $db->query(
'FOR u IN users FILTER u.age >= @age SORT u.name ASC RETURN u'
)->bind( age => 18 )->execute()->all;
DESCRIPTION
An AQL(Arango Query Language) statement handler.
METHODS
new($conn,$query)
Constructor.
execute($options)
Execute AQL query and returns cursor(instance of ArangoDB::Cursor).
$options is query options.The attributes of $options are:
- batch_size
-
Maximum number of result documents to be transferred from the server to the client in one roundtrip (optional).
- do_count
-
Boolean flag that indicates whether the number of documents found should be returned as "count" attribute in the result set (optional).
parse()
Parse a query string without executing.
Return ARRAY reference of bind variable names.
explain()
Get execution plan of query.
Returns ARRAY reference.
bind_vars($name)
Returns bind variable based on $name.
If $name does not passed, returns all bind variables as HASH reference.
bind($vars)
bind($key => $value)
Set bind variable(s).
- $vars
-
HASH reference that set of key/value pairs.
- $key
-
Bind variable name.
- $value
-
Bind variable value.
Returns instance of ArangoDB::Statement.You can use method chain:
my $documents = $db->query(
'FOR u IN users FILTER u.type == @type && u.age >= @age SORT u.name ASC RETURN u'
)->bind({
type => 1,
age => 19
})->execute->all;
AUTHOR
Hideaki Ohno <hide.o.j55 {at} gmail.com>