fastango
v1.0.0-beta1
Published
A fast poc arangodb client for Node.js(R)
Downloads
12
Maintainers
Readme
fastango
supercharged arangodb poc client
impelentation status
drawbacks
- not the full http api is implemented
- all request go into the same queue. on socket error this queue will resubmited to the db -> split queue to pipelined an non pipelined requests
- no cursor iteration (possbile when async functions land in in ES7)
initialize client
parser = new (require 'fastango/parser') 'IP', PORT
require('fastango/fastango') parser, '_system', (status, fastango) ->
if status >= 400
'some error'
return
'now you can use fastango'
database
_use
fastango._use 'myDb', (status, fastango) ->
if status >= 400
'some error'
Change the database. Note: the old fastango object points to the old db. You have to use the newly returned fastango object.
collections
truncate
fastango.testCollection.truncate (status, heads, body) ->
if status >= 400
'some error'
drop
fastango.testCollection.drop (status, heads, body) ->
if status >= 400
'some error'
_createDocumentCollection
fastango._createDocumentCollection 'NAME', {options}, (status, heads, body) ->
if status >= 400
'some error'
for options see https://docs.arangodb.com/HttpCollection/Creating.html
documents
save
fastango.testCollection.save JSON.strinigfy({key:'value'}), (status, heads, body) ->
if status >= 400
'some error'
update
fastango.testCollection.update '_key', JSON.strinigfy({key:'value'}), {options}, (status, heads, body) ->
if status >= 400
'some error'
for options (optional) see https://docs.arangodb.com/HttpDocument/WorkingWithDocuments.html (Patch document)
document
fastango.testCollection.document '_key', (status, heads, body) ->
if status >= 400
'some error'
count
fastango.testCollection.count (status, heads, body) ->
if status >= 400
'some error'
misc
_query
fastango._query 'FOR doc IN docs RETURN doc._key', {bindVars}, {options}, (status, cursor) ->
if status >= 400
'some error'
return
cursor.all (status, results) ->
if status >= 400
'some error'
for options see https://docs.arangodb.com/HttpAqlQueryCursor/AccessingCursors.html example:
fastango._query 'FOR doc IN docs RETURN doc._key', {}, {fullCount:true, maxPlans:1}, (status, cursor) ->
for the moment only cursor.all
is supported.
_transaction
fastango._transaction {
params:
a: 4
collections: ['col1', 'col2'] | # optional
read: ['col1', 'col2']
write: ['col1', 'col2']
waitForSync: true|false # optional
lockTimeout: UNUMBER # optional
}, (params) -> # the action function
return params.a
, (status, headers, body) ->
if status >= 400
'some error'