Mengambil Semua Dokumen dari Collection ArangoDB di PHP

Muhammad Arslan 19 Oktober 2017

Mengambil Semua Dokumen dari Collection ArangoDB di PHP

Masih menggunakan CollectionHandler, kali ini kita akan mengambil semua dokumen dari suatu collection. Kamu hanya perlu menggunakan method add() dari instans CollectionHandler. Kemudian hasilnya bisa kamu looping sesuai keperluan.

Untuk mendapatkan ID dari suatu dokumen, dapat kamu gunakan getKey() dari setiap objek Document yang didapat dari hasil query ArangoDB. Dan untuk mengambil isi dari setiap field yang ada di dalam collection, tinggal gunakan saja nama atribut yang sesuai dengan nama field yang ada di collection.

Koneksi Ke ArangoDB menggunakan PHP

Berikut adalah contoh script PHP untuk mengambil semua dokumen dari suatu koleksi di ArangoDB:

<?php

require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';

use ArangoDBClient\Connection as ArangoConnection;
use ArangoDBClient\ConnectionOptions as ArangoConnectionOptions;
use ArangoDBClient\UpdatePolicy as ArangoUpdatePolicy;
use ArangoDBClient\Collection as ArangoCollection;
use ArangoDBClient\CollectionHandler as ArangoCollectionHandler;
use ArangoDBClient\Document as ArangoDocument;
use ArangoDBClient\DocumentHandler as ArangoDocumentHandler;

$connectionOptions =array(
    // server endpoint to connect to
    ArangoConnectionOptions::OPTION_ENDPOINT => 'tcp://127.0.0.1:8529',
    // authorization type to use (currently supported: 'Basic')
    ArangoConnectionOptions::OPTION_AUTH_TYPE => 'Basic',
    // user for basic authorization
    ArangoConnectionOptions::OPTION_AUTH_USER => 'root',
    // password for basic authorization
    ArangoConnectionOptions::OPTION_AUTH_PASSWD => 'root',
    // connection persistence on server. can use either 'Close' (one-time connections) or 'Keep-Alive' (re-used connections)
    ArangoConnectionOptions::OPTION_CONNECTION => 'Close',
    // connect timeout in seconds
    ArangoConnectionOptions::OPTION_TIMEOUT => 3,
    // whether or not to reconnect when a keep-alive connection has timed out on server
    ArangoConnectionOptions::OPTION_RECONNECT => true,
    // optionally create new collections when inserting documents
    ArangoConnectionOptions::OPTION_CREATE => true,
    // optionally create new collections when inserting documents
    ArangoConnectionOptions::OPTION_UPDATE_POLICY => ArangoUpdatePolicy::LAST,

    "database" => "example"
);

// open connection
$connection = new ArangoConnection($connectionOptions);

// create a new collection
$colName = "Cities";
$col = new ArangoCollection($colName);
$colHandler = new ArangoCollectionHandler($connection);

if (!$colHandler->has($colName)) {
    $colHandler->create($col);
}

$result = $colHandler->all($colName);

foreach ($result as $row){
    echo $row->getKey()." ".$row->name." ".$row->population."\n";
}

Silahkan jalankan script diatas, dan periksalah hasilnya di konsol:

$ php listing-collection.php
83140 Yogyakarta 5000000
83143 Depok 1000000
83137 Bandung 2000000
83133 Jakarta 10000000