NAME
Arango::Tango::Collection - ArangoDB Collection object
VERSION
version 0.019
USAGE
This class should not be created directly. The Arango::Tango module is responsible for creating instances of this object.
Arango::Tango::Collection
answers to the following methods:
load_indexes
$ans = $collection->load_indexes;
This route tries to cache all index entries of this collection into the main memory. Therefore it iterates over all indexes of the collection and stores the indexed values, not the entire document data, in memory.
info
$info = $collection->info;
The result is an object describing the collection.
checksum
$data = $collection->checksum;
Will calculate a checksum of the meta-data (keys and optionally revision ids) and optionally the document data in the collection.
count
$n = $collection->count;
In addition to the above checksum
, the result also contains the number of documents.
document
$doc = $collection->document("doc_key");
Retrieves a document given a specific key. The header options are not supported yet.
figures
$figures = $collection->figures;
In addition to the above (count
), the result also contains the number of documents and additional statistical information about the collection.
properties
$properties = $collection->properties;
In addition to the above, the result will always contain the waitForSync attribute, and the doCompact, journalSize, and isVolatile attributes for the MMFiles storage engine.
set_properties
$properties = $collection->set_properties( waitForSync => 1 );
Changes the properties of a collection.
revision
$rev = $collection->revision;
In addition to the above, the result will also contain the collection’s revision id. The revision id is a server-generated string that clients can use to check whether data in a collection has changed since the last revision check.
create_document
$collection->create_document( { 'Hello' => 'World' } );
$collection->create_document( q!"{ "Hello": "World" }! );
Stores a document in specified collection
replace_document
$collection->replace_document( $key, { 'Hello' => 'World' } );
Replaces a document in specified collection
delete_document
$collection->delete_document($key);
Deletes a document in specified collection
truncate
$collection->truncate;
Removes all documents from the collection, but leaves the indexes intact.
rotate
$status = $collection->rotate;
Rotates the journal of a collection. The current journal of the collection will be closed and made a read-only datafile. The purpose of the rotate method is to make the data in the file available for compaction (compaction is only performed for read-only datafiles, and not for journals).
Note: this method is specific for the MMFiles storage engine, and there it is not available in a cluster.
rename
my $ans = $collection->rename("newName");
Renames a collection.
recalculate_count
my $ans = $collection->recalculate_count;
Recalculates the document count of a collection, if it ever becomes inconsistent.
Note: this method is specific for the RocksDB storage engine.
document_paths
my $paths = $collection->document_paths;
Lists all collection document as their paths in the database. Returns a hash reference.
get_access_level
my $perms = $db->get_access_level($user)
Fetch the collection access level for a specific user.
set_access_level
$db->set_access_level($user, 'none')
Sets the collection access level for a specific user.
clear_access_level
$db->clear_access_level($user, 'none')
Clears the collection access level for a specific user.
bulk_import
$collection->bulk_import([{_key => "something"}, {_key => "something else"}])
Imports a group of documents in a single call.
cursor
my $cursor = $collection->cursor( $aql_query, %opt );
Performs AQL queries, returning a cursor. An optional hash of options can be supplied. Supported hashes corresponds to the different attributes available in the ArangoDB REST API (https://docs.arangodb.com/3.4/HTTP/AqlQueryCursor/AccessingCursors.html).
AUTHOR
Alberto Simões <ambs@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2019-2023 by Alberto Simões.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.