Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

About


{ "About me" : { 
    "Name": "Henrik Ingo",
    "Previously": "MongoDB Solutions Architect", 
    "Now": "Performance team in R&D",
    "Earlier career": "DB architect at Nokia Maps"
  }
}
Pie chart with MongoDB having 50% market share of all NoSQL users

{ "Leading NoSQL DB" : {










  }
}
MongoDB has NoSQL scalability and RDBMS feature set

{ "Product vision" : {











  }
}

5 NoSQL categories




{ "Key-Value" }      { "Wide-Column" }       { "Document" }



            { "Graph" }            { "Hadoop" }
       

Definition of Big Data:
3V

MongoDB Basics


{ "Document Database" : "JSON documents",
  "Flexible schema"   : "Variability",
  "Scalability"       : "Volume",
  "Operational DBMS"  : "Velocity",
  "High Availabillity": "Builtin replication"
}

db.mycollection.insert( { "Firstname" : "Henrik", "Lastname" : "Ingo", "Age" : 39 } )
db.mycollection.insert( { "Firstname" : "Eszter", "Lastname" : "Gálicz", 
                                     "Hair" : { "Color" : "Brown", "Length" : "Long" } } )
db.mycollection.find()
{ "_id" : ObjectId("575170c0570865e450b40687"), "Firstname" : "Henrik", "Lastname" : "Ingo", "Age" : 39 }
{ "_id" : ObjectId("57517162570865e450b40688"), "Firstname" : "Eszter", "Lastname" : "Gálicz", "Hair" : { "Color" : "Brown", "Length" : "Long" } }

db.mycollection.find().pretty()
{
  "_id" : ObjectId("575170c0570865e450b40687"),
  "Firstname" : "Henrik",
  "Lastname" : "Ingo",
  "Age" : 39
}
{
  "_id" : ObjectId("57517162570865e450b40688"),
  "Firstname" : "Eszter",
  "Lastname" : "Gálicz",
  "Hair" : { 
      "Color" : "Brown", 
      "Length" : "Long" 
  }
}


db.mycollection.find( { "_id" : ObjectId("575170c0570865e450b40687") } )

{ "_id" : ObjectId("575170c0570865e450b40687"), "Firstname" : "Henrik", "Lastname" : "Ingo", "Age" : 39 }

db.mycollection.find( { "Firstname" : "Eszter" } ).pretty()
{
  "_id" : ObjectId("57517162570865e450b40688"),
  "Firstname" : "Eszter",
  "Lastname" : "Gálicz",
  "Hair" : {
    "Color" : "Brown",
    "Length" : "Long"
  }
}

Indexes


db.mycollection.createIndex( { "Firstname" : 1 } )
{
  "createdCollectionAutomatically" : false,
  "numIndexesBefore" : 1,
  "numIndexesAfter" : 2,
  "ok" : 1
}

MongoDB & GIS


{ "2d" : [
    "Legacy (pre-2013)",
    "(x,y) point on a 2d plane",
    "Can't wrap over Anti-Meridian",
    "Foursquare & Grindr"
  ],
  "2dsphere" : [
    "GeoJSON",
    "WGS84",
    { "Units" : ["meters", "degrees"] },
    { "Functions" : "$nearSphere, $near, $geoWithin, $geoIntersects" }
  ]
}

GeoJSON


{ "type": "Point", 
  "coordinates": [100.0, 0.0] }

{ "type": "LineString",
  "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] }

{ "type": "Polygon",
  "coordinates": [
    [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ]
  ] }

A MongoDB document (OpenStreetmap)


{
  "_id" : 60062438,
  "amenity" : "bar",
  "addr:city" : "Helsinki",
  "url" : "http://www.mbar.fi/",
  "wheelchair" : "yes",
  "internet_access:fee" : "no",
  "location" : {
    "type" : "Point",
    "coordinates" : [
        24.9360765,
        60.1706603
    ]
  },
  "internet_access" : "yes",
  "addr:country" : "FI",
  "name" : "Mbar"
}

{
  "_id" : 358181115,
  "building" : "yes",
  "amenity" : "bar",
  "name" : "Mbar",
  "location" : {
    "type" : "Polygon",
    "coordinates" : [[[ 24.9362176, 60.1704103],
                       [ 24.9362826, 60.1704122],
                       [ 24.9362919, 60.1703316],
                       [ 24.9362270, 60.1703298],
                       [ 24.9362176, 60.1704103]]]
  }
}

Add spatial (2dsphere) index


db.pubs.createIndex( { "location" : "2dsphere" } )

Find pubs near this conference


db.pubs.find({"location":{ "$nearSphere" : {"type":"Point","coordinates":[24.94739,60.16945]}}}).pretty()
{ "addr:city" : "Helsinki",
  "location" : {
    "type" : "Point",
    "coordinates" : [
      24.9465883,
      60.1697204
    ] },
  "opening_hours" : "Mo-Su 12:00-02:00",
  "name" : "Helsinki Shot Bar"
}
{ "addr:city" : "Helsinki",
  "addr:postcode" : "00100",
  "location" : {
    "type" : "Point",
    "coordinates" : [
      24.9450634,
      60.1696206
    ] },
  "opening_hours" : "Mo-Tu 14:00-01:00; We-Th 14:00-02:00; Fr-Sa 12:00-03:00; Su 15:00-01:00",
  "name" : "HemingwayS"
}

{ "payment:bitcoin" : "yes",
  "addr:city" : "Helsinki",
  "name" : "Big Time Bar",
  "website" : "http://www.bigtimebar.com/",
  "location" : {
    "type" : "Point",
    "coordinates" : [
      24.944314,
      60.1694624
    ] },
  "addr:street" : "Mikonkatu"
}
{ "addr:city" : "Helsinki",
  "url" : "http://www.mollymalones.fi/",
  "location" : {
    "type" : "Point",
    "coordinates" : [
      24.9464097,
      60.1709307
    ] },
  "addr:street" : "Kaisaniemenkatu",
  "name" : "Molly MaloneS"
}

More info

HToggle this help
SpaceForward
Right, Down, Page DownNext slide
Left, Up, Page UpPrevious slide
POpen presenter console