Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OrientDB - MWRC

aemadrid
September 26, 2011

OrientDB - MWRC

The fastest NoSQL document-graph database
Presentation given at MWRC 2011

aemadrid

September 26, 2011
Tweet

More Decks by aemadrid

Other Decks in Programming

Transcript

  1. Features • ACID Transactions • Complex Types • Arrays /

    Hashes / Embedded Documents • Direct Links
  2. Features •SQL in NoSQL • WTH? • SELECT * FROM

    employee WHERE name LIKE '%Jay%' AND status = 0
  3. JSON Documents { '@rid' = '26:10', '@class' = 'Developer', 'name'

    : 'Luca', 'surname' : 'Garulli', 'company' : '19:76' }
  4. Fetch Plan Invoice 3:100 | | customer +---------> Customer |!

    5:233 | city! country +---------> City ---------> Country |! 11:2! 12:3 | orders +--------->* [OrderItem OrderItem OrderItem] [ 8:12! 8:19! 8:23 ]
  5. Java ODocument doc = new ODocument( db, "Person" ); doc.field(

    "name", "Luke" ); doc.field( "surname", "Skywalker" ); doc.field( "city", new ODocument ("City" ).fields("name","Rome") ); doc.save();
  6. orientdb-jruby person_class = DB.create_class :person, :name => :string doc =

    OrientDB::Document.new DB, "Person" doc[:name] = "Luke" doc[:surname] = "Skywalker" doc[:city] = OrientDB::Document.new DB, "City", :name => "Rome" doc.save
  7. orientdb-jruby List<ODocument> result = db.query( new OSQLSynchQuery ( "select *

    from person where city.name = 'Rome'" ) ); for( ODocument d : result ) { System.out.println( "Person: " + d.field( "name" ) + d.field( "surname" ) ); } results = DB.first 'SELECT * FROM where WHERE city = "Rome"' results.each do |doc| puts "Person: " + person.name + doc.surname end
  8. Queries • select from Account where address.city.country.name = 'Italy' •

    select from Account where addresses contains (city.country.name = 'Italy') • select from Profile where any() like '%Jay%' • select from Tree where children contains ( married = true ) • select from User where roles containsKey 'shutdown' • select from Vehicle where @class = 'Car' • select from Friend where @version > 100
  9. Console ORIENT database v.0.9.23 www.orientechnologies.com Type 'help' to display all

    the commands supported. > connect remote:localhost/demo admin admin Connecting to database [remote:localhost/demo] with user 'admin'...OK > select from profile where nick.startsWith('L') ---+--------+--------------------+--------------------+--------------------+ # | REC ID | NICK! | SEX! | AGE | ---+--------+--------------------+--------------------+--------------------+ 0 | 10:0 | Lvca | male | 34 1 | 10:3 | Leo | male | 22 2 | 10:7 | Luisa | female | 27 3 item(s) found. Query executed in 0.013 sec(s). > close Disconnecting from the database [demo]...OK > quit