SlideShare a Scribd company logo
ArangoDB /* Using Javascript in the database */ Jan Steemann, triAGENS, Cologne
ArangoDB basics www.arangodb.org © j.steemann@triagens.de
ArangoDB.explain() { "type": "NoSQL database", "openSource": true, "version": 1.0, "builtWith": [ "C", "C++", "js" ], "Javascript": [ "client side", "server side" ], "uses": [ "V8" ] } www.arangodb.org © j.steemann@triagens.de
Documents and collections ArangoDB is a database that works with documents Documents are sets of name / value pairs (think of JSON objects), e.g. { "name": "Jan", "age": 37 } Documents are organised in collections (like tables in relational databases) www.arangodb.org © j.steemann@triagens.de
Data types: JSON! ArangoDB operates on JSON documents JSON data can be saved as-is: db.users.save({ "name": "Jan", "uses": [ "vi", "js", "C++" ] }); www.arangodb.org © j.steemann@triagens.de
Schema-free Documents can be heterogenous – even in the same collection, e.g. { "name": "Jan", "age": 37 }, { "name": "Tim", "likes": [ "js" ] }, { "name": { "first": "Patrick", "last": "Star" } } No need to care about schemas www.arangodb.org © j.steemann@triagens.de
API & protocols ArangoDB server functionality is exposed via an HTTP REST API ArangoDB answers HTTP queries, so it can be used from the browser Simple to use from Javascript clients (3rd party) drivers available for node.js, Ruby, PHP, ... Javascript-enabled client shell provided www.arangodb.org © j.steemann@triagens.de
Querying www.arangodb.org © j.steemann@triagens.de
Querying is simple Query a document by its unique id / key: db._document("users/9558905"); Query by providing an example: db.users.byExample({ "name": "Jan", "age": 37 }); www.arangodb.org © j.steemann@triagens.de
Indexes ArangoDB allows querying on any document attributes or sub-attributes Secondary indexes can be created for higher query performance: • Hash indexes (equality queries) • Skiplists (range queries) • 2d geo indexes (location queries) www.arangodb.org © j.steemann@triagens.de
Geo index examples // get b a r n ea r es t t o coor d in a t e db.bars.near(48.51, 2.21).limit(1); // get a ll s h op s w it h in r a d iu s // a r ou n d coor d in a t e db.shops.within(48.51, 2.21, rad); www.arangodb.org © j.steemann@triagens.de
References ArangoDB can store references between documents References are documents with two endpoints (the documents they connect) Reference documents can carry own attributes www.arangodb.org © j.steemann@triagens.de
References example Users documents: Relations documents: (references) { "name": "Jan", "age": 37 { } "_from": "users/jan", "_to": "users/tim", { "type": "knows", "name": "Tim", } "city": "Paris" } // q u er y ou t b ou n d r ela t ion s f r om "J a n " db.relations.outEdges(jan); // => tim www.arangodb.org © j.steemann@triagens.de
Graph queries References make it possible to process graphs with ArangoDB Some special functions are provided to determine paths in a graph etc. Can write own Javascript functions for special traversals www.arangodb.org © j.steemann@triagens.de
Query language ArangoDB can also answer complex SQL-like queries Such queries are expressed in ArangoDB's textual query language This language allows joins, sub-queries, aggregation etc. www.arangodb.org © j.steemann@triagens.de
Example query FOR u IN users It er a t or FILTER u.addr.country == "US" && (u.isConfirmed == true || u.age >= 18) F ilt er LET userLogins = ( FOR l IN logins FILTER l.userId == u.id RETURN l ) S u b q u er y RETURN { "user": u, "logins": LENGTH(userLogins) } R es u lt www.arangodb.org © j.steemann@triagens.de
Server side „actions“ www.arangodb.org © j.steemann@triagens.de
Application server ArangoDB can answer web requests directly This also makes it an application server Users can extend its functionality with server side Javascript „actions“ Actions are user-defined functions that contain custom business logic www.arangodb.org © j.steemann@triagens.de
Actions Actions are bound to URLs and executed when URLs are called, e.g. /users?name=... => function(...) /users/.../friends => function(...) www.arangodb.org © j.steemann@triagens.de
Actions example function (req, res) { // get r eq u es t ed u s er f r om d b , // n a m e is r ea d f r om U R L p a r a m et er var u = db.users.byExample({ "username": req.urlParameters.name }); // r em ov e p a s s w or d h a s h delete u.hashedPassword; // b ef or e r et u r n in g t o ca ller actions.resultOk(req, res, 200, u); } www.arangodb.org © j.steemann@triagens.de
Actions – Use cases Filter out sensitive data before responding Validate input Check privileges Check and enforce constraints Aggregate data from multiple queries into a single response Carry out data-intensive operations www.arangodb.org © j.steemann@triagens.de
Summary www.arangodb.org © j.steemann@triagens.de
ArangoDB - summary Flexible in terms of data modelling and querying API is based on web standards: HTTP, REST, JSON Easy to use from Javascript clients Can be used as application server Functionality can be extended with server side Javascript „actions“ www.arangodb.org © j.steemann@triagens.de
Thanks! Any questions? Спасибо Grazie Teşekkürler ¡Gracias! Merci! Хвала Dank je wel Ευχαριστώ ありがとう 고마워 Tack så mycket Danke www.arangodb.org © j.steemann@triagens.de
Give it a try! ArangoDB source repository: https://www.github.com/triAGENS/ArangoDB (use master branch) Website: http://www.arangodb.org/ Builds available for Homebrew and several Linux distributions Twitter: #arangodb, @arangodb Google group: ArangoDB www.arangodb.org © j.steemann@triagens.de
Roadmap MVCC / ACID transactions Triggers Synchronous and asynchronous replication www.arangodb.org © j.steemann@triagens.de
Thank you! Stay in Touch: • Fork me on github • Google Group: ArangoDB • Twitter: @steemann & @arangodb • www.arangodb.org www.arangodb.org © j.steemann@triagens.de

More Related Content

What's hot (20)

PDF
Query mechanisms for NoSQL databases
ArangoDB Database
 
PDF
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
ArangoDB Database
 
PDF
OrientDB: Unlock the Value of Document Data Relationships
Fabrizio Fortino
 
PDF
OrientDB & Node.js Overview - JS.Everywhere() KW
gmccarvell
 
PPT
Connecting to a REST API in iOS
gillygize
 
PPTX
Graph Databases & OrientDB
Arpit Poladia
 
PDF
Small Overview of Skype Database Tools
elliando dias
 
PPTX
Solid pods and the future of the spatial web
Kurt Cagle
 
PPTX
Using Webservice in iOS
Mahboob Nur
 
PDF
iOS: Web Services and XML parsing
Jussi Pohjolainen
 
PPTX
PostgreSQL - Object Relational Database
Mubashar Iqbal
 
PDF
Introduction to column oriented databases
ArangoDB Database
 
ODP
State of the Semantic Web
Ivan Herman
 
PPTX
RDFa Tutorial
Ivan Herman
 
PDF
elasticsearch basics workshop
Mathieu Elie
 
PPTX
ODTUG Webcast - Thinking Clearly about XML
Marco Gralike
 
PDF
OrientDB introduction - NoSQL
Luca Garulli
 
PDF
The Lonesome LOD Cloud
Ruben Verborgh
 
KEY
OSCON 2011 CouchApps
Bradley Holt
 
PPT
Introduction to couch_db
Romain Testard
 
Query mechanisms for NoSQL databases
ArangoDB Database
 
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
ArangoDB Database
 
OrientDB: Unlock the Value of Document Data Relationships
Fabrizio Fortino
 
OrientDB & Node.js Overview - JS.Everywhere() KW
gmccarvell
 
Connecting to a REST API in iOS
gillygize
 
Graph Databases & OrientDB
Arpit Poladia
 
Small Overview of Skype Database Tools
elliando dias
 
Solid pods and the future of the spatial web
Kurt Cagle
 
Using Webservice in iOS
Mahboob Nur
 
iOS: Web Services and XML parsing
Jussi Pohjolainen
 
PostgreSQL - Object Relational Database
Mubashar Iqbal
 
Introduction to column oriented databases
ArangoDB Database
 
State of the Semantic Web
Ivan Herman
 
RDFa Tutorial
Ivan Herman
 
elasticsearch basics workshop
Mathieu Elie
 
ODTUG Webcast - Thinking Clearly about XML
Marco Gralike
 
OrientDB introduction - NoSQL
Luca Garulli
 
The Lonesome LOD Cloud
Ruben Verborgh
 
OSCON 2011 CouchApps
Bradley Holt
 
Introduction to couch_db
Romain Testard
 

Viewers also liked (12)

PDF
ArangoDB – A different approach to NoSQL
ArangoDB Database
 
ODP
Lokijs
Joe Minichino
 
PDF
Domain Driven Design and NoSQL TLV
ArangoDB Database
 
PDF
ArangoDB
ArangoDB Database
 
PDF
Converting Relational to Graph Databases
Antonio Maccioni
 
PDF
Designing and Building a Graph Database Application – Architectural Choices, ...
Neo4j
 
PDF
Working With a Real-World Dataset in Neo4j: Import and Modeling
Neo4j
 
PPTX
Introduction to Graph Databases
Max De Marzi
 
PPTX
Neo4j Partner Tag Berlin - Potential für System-Integratoren und Berater
Neo4j
 
PDF
Webinar: RDBMS to Graphs
Neo4j
 
PDF
reveal.js 3.0.0
Hakim El Hattab
 
PDF
Neo4j - 5 cool graph examples
Peter Neubauer
 
ArangoDB – A different approach to NoSQL
ArangoDB Database
 
Domain Driven Design and NoSQL TLV
ArangoDB Database
 
Converting Relational to Graph Databases
Antonio Maccioni
 
Designing and Building a Graph Database Application – Architectural Choices, ...
Neo4j
 
Working With a Real-World Dataset in Neo4j: Import and Modeling
Neo4j
 
Introduction to Graph Databases
Max De Marzi
 
Neo4j Partner Tag Berlin - Potential für System-Integratoren und Berater
Neo4j
 
Webinar: RDBMS to Graphs
Neo4j
 
reveal.js 3.0.0
Hakim El Hattab
 
Neo4j - 5 cool graph examples
Peter Neubauer
 
Ad

Similar to ArangoDB - Using JavaScript in the database (20)

PPT
Reversing JavaScript
Roberto Suggi Liverani
 
ODP
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Codemotion
 
PDF
Coding Ajax
Ted Husted
 
PDF
Coding Ajax
Ted Husted
 
PPTX
Dart the Better JavaScript
Jorg Janke
 
KEY
Elastic tire demo
Scott Hamilton
 
PPTX
Dex Technical Seminar (April 2011)
Sergio Gomez Villamor
 
PDF
aRangodb, un package per l'utilizzo di ArangoDB con R
GraphRM
 
PPTX
JavaScripts & jQuery
Asanka Indrajith
 
PDF
Angular JS2 Training Session #1
Paras Mendiratta
 
ODP
Introduction to Swagger
Knoldus Inc.
 
PPTX
Andriy Shalaenko - GO security tips
OWASP Kyiv
 
PPTX
Bringing your app to the web with Dart - Chris Buckett (Entity Group)
jaxLondonConference
 
PPTX
Stop the noise! - Introduction to the JSON:API specification in Drupal
Björn Brala
 
PDF
Introduction to Spark Datasets - Functional and relational together at last
Holden Karau
 
PDF
django
webuploader
 
PPTX
Getting into ember.js
reybango
 
PDF
Crystal internals (part 1)
Crystal Language
 
PDF
Crystal internals (part 1)
Ary Borenszweig
 
Reversing JavaScript
Roberto Suggi Liverani
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Codemotion
 
Coding Ajax
Ted Husted
 
Coding Ajax
Ted Husted
 
Dart the Better JavaScript
Jorg Janke
 
Elastic tire demo
Scott Hamilton
 
Dex Technical Seminar (April 2011)
Sergio Gomez Villamor
 
aRangodb, un package per l'utilizzo di ArangoDB con R
GraphRM
 
JavaScripts & jQuery
Asanka Indrajith
 
Angular JS2 Training Session #1
Paras Mendiratta
 
Introduction to Swagger
Knoldus Inc.
 
Andriy Shalaenko - GO security tips
OWASP Kyiv
 
Bringing your app to the web with Dart - Chris Buckett (Entity Group)
jaxLondonConference
 
Stop the noise! - Introduction to the JSON:API specification in Drupal
Björn Brala
 
Introduction to Spark Datasets - Functional and relational together at last
Holden Karau
 
django
webuploader
 
Getting into ember.js
reybango
 
Crystal internals (part 1)
Crystal Language
 
Crystal internals (part 1)
Ary Borenszweig
 
Ad

More from ArangoDB Database (20)

PPTX
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
ArangoDB Database
 
PPTX
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
ArangoDB Database
 
PPTX
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
ArangoDB Database
 
PPTX
ArangoDB 3.9 - Further Powering Graphs at Scale
ArangoDB Database
 
PDF
GraphSage vs Pinsage #InsideArangoDB
ArangoDB Database
 
PDF
Webinar: ArangoDB 3.8 Preview - Analytics at Scale
ArangoDB Database
 
PDF
Graph Analytics with ArangoDB
ArangoDB Database
 
PDF
Getting Started with ArangoDB Oasis
ArangoDB Database
 
PDF
Custom Pregel Algorithms in ArangoDB
ArangoDB Database
 
PPTX
Hacktoberfest 2020 - Intro to Knowledge Graphs
ArangoDB Database
 
PDF
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
ArangoDB Database
 
PDF
ArangoML Pipeline Cloud - Managed Machine Learning Metadata
ArangoDB Database
 
PDF
ArangoDB 3.7 Roadmap: Performance at Scale
ArangoDB Database
 
PDF
Webinar: What to expect from ArangoDB Oasis
ArangoDB Database
 
PDF
ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019
ArangoDB Database
 
PDF
3.5 webinar
ArangoDB Database
 
PDF
Webinar: How native multi model works in ArangoDB
ArangoDB Database
 
PDF
An introduction to multi-model databases
ArangoDB Database
 
PDF
Running complex data queries in a distributed system
ArangoDB Database
 
PDF
Guacamole Fiesta: What do avocados and databases have in common?
ArangoDB Database
 
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
ArangoDB Database
 
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
ArangoDB Database
 
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
ArangoDB Database
 
ArangoDB 3.9 - Further Powering Graphs at Scale
ArangoDB Database
 
GraphSage vs Pinsage #InsideArangoDB
ArangoDB Database
 
Webinar: ArangoDB 3.8 Preview - Analytics at Scale
ArangoDB Database
 
Graph Analytics with ArangoDB
ArangoDB Database
 
Getting Started with ArangoDB Oasis
ArangoDB Database
 
Custom Pregel Algorithms in ArangoDB
ArangoDB Database
 
Hacktoberfest 2020 - Intro to Knowledge Graphs
ArangoDB Database
 
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
ArangoDB Database
 
ArangoML Pipeline Cloud - Managed Machine Learning Metadata
ArangoDB Database
 
ArangoDB 3.7 Roadmap: Performance at Scale
ArangoDB Database
 
Webinar: What to expect from ArangoDB Oasis
ArangoDB Database
 
ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019
ArangoDB Database
 
3.5 webinar
ArangoDB Database
 
Webinar: How native multi model works in ArangoDB
ArangoDB Database
 
An introduction to multi-model databases
ArangoDB Database
 
Running complex data queries in a distributed system
ArangoDB Database
 
Guacamole Fiesta: What do avocados and databases have in common?
ArangoDB Database
 

Recently uploaded (20)

PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 

ArangoDB - Using JavaScript in the database

  • 1. ArangoDB /* Using Javascript in the database */ Jan Steemann, triAGENS, Cologne
  • 2. ArangoDB basics www.arangodb.org © j.steemann@triagens.de
  • 3. ArangoDB.explain() { "type": "NoSQL database", "openSource": true, "version": 1.0, "builtWith": [ "C", "C++", "js" ], "Javascript": [ "client side", "server side" ], "uses": [ "V8" ] } www.arangodb.org © j.steemann@triagens.de
  • 4. Documents and collections ArangoDB is a database that works with documents Documents are sets of name / value pairs (think of JSON objects), e.g. { "name": "Jan", "age": 37 } Documents are organised in collections (like tables in relational databases) www.arangodb.org © j.steemann@triagens.de
  • 5. Data types: JSON! ArangoDB operates on JSON documents JSON data can be saved as-is: db.users.save({ "name": "Jan", "uses": [ "vi", "js", "C++" ] }); www.arangodb.org © j.steemann@triagens.de
  • 6. Schema-free Documents can be heterogenous – even in the same collection, e.g. { "name": "Jan", "age": 37 }, { "name": "Tim", "likes": [ "js" ] }, { "name": { "first": "Patrick", "last": "Star" } } No need to care about schemas www.arangodb.org © j.steemann@triagens.de
  • 7. API & protocols ArangoDB server functionality is exposed via an HTTP REST API ArangoDB answers HTTP queries, so it can be used from the browser Simple to use from Javascript clients (3rd party) drivers available for node.js, Ruby, PHP, ... Javascript-enabled client shell provided www.arangodb.org © j.steemann@triagens.de
  • 9. Querying is simple Query a document by its unique id / key: db._document("users/9558905"); Query by providing an example: db.users.byExample({ "name": "Jan", "age": 37 }); www.arangodb.org © j.steemann@triagens.de
  • 10. Indexes ArangoDB allows querying on any document attributes or sub-attributes Secondary indexes can be created for higher query performance: • Hash indexes (equality queries) • Skiplists (range queries) • 2d geo indexes (location queries) www.arangodb.org © j.steemann@triagens.de
  • 11. Geo index examples // get b a r n ea r es t t o coor d in a t e db.bars.near(48.51, 2.21).limit(1); // get a ll s h op s w it h in r a d iu s // a r ou n d coor d in a t e db.shops.within(48.51, 2.21, rad); www.arangodb.org © j.steemann@triagens.de
  • 12. References ArangoDB can store references between documents References are documents with two endpoints (the documents they connect) Reference documents can carry own attributes www.arangodb.org © j.steemann@triagens.de
  • 13. References example Users documents: Relations documents: (references) { "name": "Jan", "age": 37 { } "_from": "users/jan", "_to": "users/tim", { "type": "knows", "name": "Tim", } "city": "Paris" } // q u er y ou t b ou n d r ela t ion s f r om "J a n " db.relations.outEdges(jan); // => tim www.arangodb.org © j.steemann@triagens.de
  • 14. Graph queries References make it possible to process graphs with ArangoDB Some special functions are provided to determine paths in a graph etc. Can write own Javascript functions for special traversals www.arangodb.org © j.steemann@triagens.de
  • 15. Query language ArangoDB can also answer complex SQL-like queries Such queries are expressed in ArangoDB's textual query language This language allows joins, sub-queries, aggregation etc. www.arangodb.org © j.steemann@triagens.de
  • 16. Example query FOR u IN users It er a t or FILTER u.addr.country == "US" && (u.isConfirmed == true || u.age >= 18) F ilt er LET userLogins = ( FOR l IN logins FILTER l.userId == u.id RETURN l ) S u b q u er y RETURN { "user": u, "logins": LENGTH(userLogins) } R es u lt www.arangodb.org © j.steemann@triagens.de
  • 17. Server side „actions“ www.arangodb.org © j.steemann@triagens.de
  • 18. Application server ArangoDB can answer web requests directly This also makes it an application server Users can extend its functionality with server side Javascript „actions“ Actions are user-defined functions that contain custom business logic www.arangodb.org © j.steemann@triagens.de
  • 19. Actions Actions are bound to URLs and executed when URLs are called, e.g. /users?name=... => function(...) /users/.../friends => function(...) www.arangodb.org © j.steemann@triagens.de
  • 20. Actions example function (req, res) { // get r eq u es t ed u s er f r om d b , // n a m e is r ea d f r om U R L p a r a m et er var u = db.users.byExample({ "username": req.urlParameters.name }); // r em ov e p a s s w or d h a s h delete u.hashedPassword; // b ef or e r et u r n in g t o ca ller actions.resultOk(req, res, 200, u); } www.arangodb.org © j.steemann@triagens.de
  • 21. Actions – Use cases Filter out sensitive data before responding Validate input Check privileges Check and enforce constraints Aggregate data from multiple queries into a single response Carry out data-intensive operations www.arangodb.org © j.steemann@triagens.de
  • 23. ArangoDB - summary Flexible in terms of data modelling and querying API is based on web standards: HTTP, REST, JSON Easy to use from Javascript clients Can be used as application server Functionality can be extended with server side Javascript „actions“ www.arangodb.org © j.steemann@triagens.de
  • 24. Thanks! Any questions? Спасибо Grazie Teşekkürler ¡Gracias! Merci! Хвала Dank je wel Ευχαριστώ ありがとう 고마워 Tack så mycket Danke www.arangodb.org © j.steemann@triagens.de
  • 25. Give it a try! ArangoDB source repository: https://www.github.com/triAGENS/ArangoDB (use master branch) Website: http://www.arangodb.org/ Builds available for Homebrew and several Linux distributions Twitter: #arangodb, @arangodb Google group: ArangoDB www.arangodb.org © j.steemann@triagens.de
  • 26. Roadmap MVCC / ACID transactions Triggers Synchronous and asynchronous replication www.arangodb.org © j.steemann@triagens.de
  • 27. Thank you! Stay in Touch: • Fork me on github • Google Group: ArangoDB • Twitter: @steemann & @arangodb • www.arangodb.org www.arangodb.org © j.steemann@triagens.de