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

SYNOPSIS
      use ArangoDB;
  
      my $db = ArangoDB->new(
          host       => 'localhost',
          port       => 8529,
          keep_alive => 1,
      );
  
      # Find or create collection
      my $foo = $db->('foo');
  
      # Create new document
      $foo->save({ x => 42, y => { a => 1, b => 2, } });
      $foo->save({ x => 1, y => { a => 1, b => 10, } });
      $foo->name('new_name'); # rename the collection
  
      # Create hash index.
      $foo->ensure_hash_index([qw/x y/]);
  
      # Simple query
      my $cursor = $db->('new_name')->by_example({ b => 2 });
      while( my $doc = $cursor->next ){
          # do something
      }
  
      # AQL
      my $cursor2 = $db->query( 
          'FOR u IN users FILTER u.age > @age SORT u.name ASC RETURN u' 
      )->bind( { age => 19 } )->execute();
      my $docs = $cursor2->all;

DESCRIPTION
    This module is an ArangoDB's REST API client for Perl.

    ArangoDB is a universal open-source database with a flexible data model
    for documents, graphs, and key-values.

    More information: <http://www.arangodb.org/>

SUPPORT API VERSION
    This supports ArangoDB API implementation 1.01.

METHODS
  new($options)
    Constructor.

    $options is HASH reference.The attributes of $options are:

    host
        Hostname or IP address of ArangoDB server.

        Default: localhost

    port
        Port number of ArangoDB server.

        Default: 8529

    timeout
        Seconds of HTTP connection timeout.

        Default: 300

    keep_alive
        If it is true, use HTTP Keep-Alive connection.

        Default: false

    auth_type
        Authentication method. Supporting "Basic" only.

    auth_user
        User name for authentication

    auth_passwd
        Password for authentication

    proxy
        Proxy url for HTTP connection.

    inet_aton
        A callback function to customize name resolution. Takes two
        arguments: ($hostname, $timeout_in_seconds).

        See Furl::HTTP.

  collection($name)
    Get or create a collection based on $name. Returns instance of
    ArangoDB::Collection.

    If the Collection $name does not exist, Create it.

    There is shorthand method for get collection instance.

        my $collection = $db->('collection-name');

  create($name)
    Create new collection. Returns instance of ArangoDB::Collection.

  find($name)
    Get a Collection based on $name. Returns instance of
    ArangoDB::Collection.

    If the collection does not exist, returns "undef".

  collections()
    Get all collections. Returns ARRAY reference.

  query($query)
    Get AQL statement handler. Returns instance of ArangoDB::Statement.

        my $sth = $db->query('FOR u IN users FILTER u.age > @age SORT u.name ASC RETURN u');

  document($doc)
    Get documnet in the collection based on $doc. Returns instance of
    ArangoDB::Document.

  edge($edge)
    Get edge in the collection. Returns instance of ArangoDB::Edge.

  index($index_id)
    Returns index object.(ArangoDB::Index::*)

    See:

    *   ArangoDB::Index::Primary

    *   ArangoDB::Index::Hash

    *   ArangoDB::Index::SkipList

    *   ArangoDB::Index::Geo

    *   ArangoDB::Index::CapConstraint

SEE ALSO
    ArangoDB websie <http://www.arangodb.org/>

DEVELOPMENT
  Repository
    <https://github.com/hideo55/p5-ArangoDB>

AUTHOR
    Hideaki Ohno <hide.o.j55 {at} gmail.com>

LICENSE
    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.