Membuat Dokumen untuk Collection ArangoDB di PHP

Muhammad Arslan 21 Oktober 2017

Membuat Dokumen untuk Collection ArangoDB di PHP

Di tutorial sebelumnya kamu telah mencoba menggunakan Collection dan CollectionHandler untuk membuat sebuah koleksi baru di ArangoDB. Kini kita akan menggunakan Document dan DocumentHandler untuk membuat dokumen baru. Pada dasarnya, kamu dapat membuat sebuah dokumen baru hanya dengan membuat instans dari class Document saja. Kemudian kamu dapat membuat atribut sembarang, dan setelah memastikan kamu mempunyai atribut yang cukup, panggil method save() yang dimiliki oleh instans Document tersebut.

Koneksi Ke ArangoDB menggunakan PHP

Berikut adalah contoh script PHP untuk membuat dokumen baru untuk 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);
}

$cities = array (
            array("Jakarta", 10000000, 10000),
            array("Bandung", 2000000, 3000),
            array("Yogyakarta", 5000000, 7000),
            array("Depok", 1000000, 1000),
        );

$docHandler = new ArangoDocumentHandler($connection);
foreach ($cities as $row) {
    $doc = new ArangoDocument();
    $doc->set("name", $row[0]);
    $doc->set("population", $row[1]);
    $doc->set("acreage", $row[2]);

    $docHandler->save($colName, $doc);
}

Silahkan jalankan script diatas, dan periksalah ke ArangoDB Web Admin:

$ php create-document.php