Movatterモバイル変換


[0]ホーム

URL:


SlideShare a Scribd company logo

ArangoDB - Using JavaScript in the database

7 likes10,186 views
ArangoDB Database
ArangoDB Database

ArangoDB is an open-source NoSQL database that stores data as schema-free JSON documents organized in collections, allowing for flexible data modeling. It provides an HTTP REST API for querying, supports complex SQL-like queries, and enables the creation of server-side JavaScript actions to extend functionality. Additionally, ArangoDB supports referencing between documents and offers special functions for graph processing, making it useful for various application needs.

1 of 27
Downloaded 51 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ArangoDB/* Using Javascript   in the database */ Jan Steemann, triAGENS, Cologne
ArangoDB  basicswww.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 collectionsArangoDB is a database that works withdocumentsDocuments are sets of name / value pairs(think of JSON objects), e.g.{ "name": "Jan", "age": 37 }Documents are organised in collections (liketables in relational databases)           www.arangodb.org © j.steemann@triagens.de
Data types: JSON!ArangoDB operates on JSON documentsJSON data can be saved as-is:db.users.save({  "name": "Jan",  "uses": [ "vi", "js", "C++" ]});            www.arangodb.org © j.steemann@triagens.de
Schema-freeDocuments 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 & protocolsArangoDB server functionality is exposed via anHTTP REST APIArangoDB answers HTTP queries,so it can be used from the browserSimple 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
Queryingwww.arangodb.org © j.steemann@triagens.de
Querying is simpleQuery 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
IndexesArangoDB allows querying on any documentattributes or sub-attributesSecondary indexes can be created for higherquery 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 edb.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 edb.shops.within(48.51, 2.21, rad);               www.arangodb.org © j.steemann@triagens.de
ReferencesArangoDB can store references betweendocumentsReferences are documents with two endpoints(the documents they connect)Reference documents can carry own attributes          www.arangodb.org © j.steemann@triagens.de
References exampleUsers 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 queriesReferences make it possible to process graphswith ArangoDBSome special functions are provided todetermine paths in a graph etc.Can write own Javascript functions for specialtraversals          www.arangodb.org © j.steemann@triagens.de
Query languageArangoDB can also answer complexSQL-like queriesSuch queries are expressed in ArangoDB'stextual query languageThis language allows joins, sub-queries,aggregation etc.          www.arangodb.org © j.steemann@triagens.de
Example queryFOR 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 serverArangoDB can answer web requests directlyThis also makes it an application serverUsers can extend its functionality with serverside Javascript „actions“Actions are user-defined functions that containcustom business logic           www.arangodb.org © j.steemann@triagens.de
ActionsActions are bound to URLs and executed whenURLs are called, e.g./users?name=... => function(...)/users/.../friends => function(...)           www.arangodb.org © j.steemann@triagens.de
Actions examplefunction (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 casesFilter out sensitive data before respondingValidate inputCheck privilegesCheck and enforce constraintsAggregate data from multiple queries into a singleresponseCarry out data-intensive operations           www.arangodb.org © j.steemann@triagens.de
Summarywww.arangodb.org © j.steemann@triagens.de
ArangoDB - summaryFlexible in terms of data modelling and queryingAPI is based on web standards:HTTP, REST, JSONEasy to use from Javascript clientsCan be used as application serverFunctionality can be extended with server sideJavascript „actions“          www.arangodb.org © j.steemann@triagens.de
Thanks!          Any questions?Спасибо                                                      GrazieTeş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 andseveral Linux distributionsTwitter: #arangodb, @arangodbGoogle group: ArangoDB           www.arangodb.org © j.steemann@triagens.de
RoadmapMVCC / ACID transactionsTriggersSynchronous 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
Ad

Recommended

PDF
Hotcode 2013: Javascript in a database (Part 1)
ArangoDB Database
 
PDF
Rupy2012 ArangoDB Workshop Part1
ArangoDB Database
 
PDF
Using MRuby in a database
ArangoDB Database
 
PDF
Hotcode 2013: Javascript in a database (Part 2)
ArangoDB Database
 
PDF
Running MRuby in a Database - ArangoDB - RuPy 2012
ArangoDB Database
 
PDF
Is multi-model the future of NoSQL?
Max Neunhöffer
 
PDF
Introduction to ArangoDB (nosql matters Barcelona 2012)
ArangoDB Database
 
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
 
PDF
ArangoDB – A different approach to NoSQL
ArangoDB Database
 
ODP
Lokijs
Joe Minichino
 

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
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
PDF
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
PPTX
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PDF
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 
PDF
Rethinking Security Operations - SOC Evolution Journey.pdf
Haris Chughtai
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PPTX
Top Managed Service Providers in Los Angeles
Captain IT
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PPTX
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
July Patch Tuesday
Ivanti
 
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 
Rethinking Security Operations - SOC Evolution Journey.pdf
Haris Chughtai
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
Top Managed Service Providers in Los Angeles
Captain IT
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 

ArangoDB - Using JavaScript in the database

  • 1.ArangoDB/* Using Javascript in the database */ Jan Steemann, triAGENS, Cologne
  • 2.ArangoDB basicswww.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 collectionsArangoDB is a database that works withdocumentsDocuments are sets of name / value pairs(think of JSON objects), e.g.{ "name": "Jan", "age": 37 }Documents are organised in collections (liketables in relational databases) www.arangodb.org © j.steemann@triagens.de
  • 5.Data types: JSON!ArangoDB operates on JSON documentsJSON data can be saved as-is:db.users.save({ "name": "Jan", "uses": [ "vi", "js", "C++" ]}); www.arangodb.org © j.steemann@triagens.de
  • 6.Schema-freeDocuments 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 & protocolsArangoDB server functionality is exposed via anHTTP REST APIArangoDB answers HTTP queries,so it can be used from the browserSimple 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 simpleQuery 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.IndexesArangoDB allows querying on any documentattributes or sub-attributesSecondary indexes can be created for higherquery 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 edb.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 edb.shops.within(48.51, 2.21, rad); www.arangodb.org © j.steemann@triagens.de
  • 12.ReferencesArangoDB can store references betweendocumentsReferences are documents with two endpoints(the documents they connect)Reference documents can carry own attributes www.arangodb.org © j.steemann@triagens.de
  • 13.References exampleUsers 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 queriesReferences make it possible to process graphswith ArangoDBSome special functions are provided todetermine paths in a graph etc.Can write own Javascript functions for specialtraversals www.arangodb.org © j.steemann@triagens.de
  • 15.Query languageArangoDB can also answer complexSQL-like queriesSuch queries are expressed in ArangoDB'stextual query languageThis language allows joins, sub-queries,aggregation etc. www.arangodb.org © j.steemann@triagens.de
  • 16.Example queryFOR 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 serverArangoDB can answer web requests directlyThis also makes it an application serverUsers can extend its functionality with serverside Javascript „actions“Actions are user-defined functions that containcustom business logic www.arangodb.org © j.steemann@triagens.de
  • 19.ActionsActions are bound to URLs and executed whenURLs are called, e.g./users?name=... => function(...)/users/.../friends => function(...) www.arangodb.org © j.steemann@triagens.de
  • 20.Actions examplefunction (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 casesFilter out sensitive data before respondingValidate inputCheck privilegesCheck and enforce constraintsAggregate data from multiple queries into a singleresponseCarry out data-intensive operations www.arangodb.org © j.steemann@triagens.de
  • 23.ArangoDB - summaryFlexible in terms of data modelling and queryingAPI is based on web standards:HTTP, REST, JSONEasy to use from Javascript clientsCan be used as application serverFunctionality can be extended with server sideJavascript „actions“ www.arangodb.org © j.steemann@triagens.de
  • 24.Thanks! Any questions?Спасибо GrazieTeş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 andseveral Linux distributionsTwitter: #arangodb, @arangodbGoogle group: ArangoDB www.arangodb.org © j.steemann@triagens.de
  • 26.RoadmapMVCC / ACID transactionsTriggersSynchronous 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

[8]ページ先頭

©2009-2025 Movatter.jp