MongoDB. Or how I learned to stop worrying and love the database. Mathias Stearn. N*SQL Berlin October 22th, 2009. 10gen

Similar documents
Building Your First MongoDB Application

Please ask questions! Have people used non-relational dbs before? MongoDB?

Getting Started with MongoDB

NOSQL INTRODUCTION WITH MONGODB AND RUBY GEOFF

Introduction to NoSQL and MongoDB. Kathleen Durant Lesson 20 CS 3200 Northeastern University

Big Data & Data Science Course Example using MapReduce. Presented by Juan C. Vega

Open source, high performance database

L7_L10. MongoDB. Big Data and Analytics by Seema Acharya and Subhashini Chellappan Copyright 2015, WILEY INDIA PVT. LTD.

MongoDB: document-oriented database

Attacking MongoDB. Firstov Mihail

MongoDB Developer and Administrator Certification Course Agenda

NoSQL - What we ve learned with mongodb. Paul Pedersen, Deputy CTO paul@10gen.com DAMA SF December 15, 2011

.NET User Group Bern

NoSQL web apps. w/ MongoDB, Node.js, AngularJS. Dr. Gerd Jungbluth, NoSQL UG Cologne,

Scaling with MongoDB. by Michael Schurter Scaling with MongoDB by Michael Schurter - OS Bridge,

CSCC09F Programming on the Web. Mongo DB

The MongoDB Tutorial Introduction for MySQL Users. Stephane Combaudon April 1st, 2014

NoSQL replacement for SQLite (for Beatstream) Antti-Jussi Kovalainen Seminar OHJ-1860: NoSQL databases

MongoDB. An introduction and performance analysis. Seminar Thesis

MongoDB and Couchbase

Scaling up = getting a better machine. Scaling out = use another server and add it to your cluster.

Brad Dayley. NoSQL with MongoDB

Cloud Scale Distributed Data Storage. Jürmo Mehine

Big Data Solutions. Portal Development with MongoDB and Liferay. Solutions

MongoDB in the NoSQL and SQL world. Horst Rechner Berlin,

Application of NoSQL Database in Web Crawling

SURVEY ON MONGODB: AN OPEN- SOURCE DOCUMENT DATABASE

NoSQL Databases. Nikos Parlavantzas

Python and MongoDB. Why?

Big Data. Facebook Wall Data using Graph API. Presented by: Prashant Patel Jaykrushna Patel

MongoDB. "humongous huge, monstrous (data) Jack of all trades. In the C camp of CAP. Gateway to NoSQL from SQL Mixing RDBMS and KV features

MONGODB - THE NOSQL DATABASE

Document Oriented Database

MongoDB Aggregation and Data Processing Release 3.0.4

NoSQL Database - mongodb

MongoDB Aggregation and Data Processing

MongoDB. The Definitive Guide to. The NoSQL Database for Cloud and Desktop Computing. Apress8. Eelco Plugge, Peter Membrey and Tim Hawkins

Database Management System Choices. Introduction To Database Systems CSE 373 Spring 2013

MongoDB Aggregation and Data Processing

NoSQL: Going Beyond Structured Data and RDBMS

Programming Against Hybrid Databases with Java Handling SQL and NoSQL. Brian Hughes IBM

Hacettepe University Department Of Computer Engineering BBM 471 Database Management Systems Experiment

Building a RESTful service with MongoDB and Spring MVC

Comparing SQL and NOSQL databases

No SQL! no injection? A talk on the state of NoSQL security

Advanced Data Management Technologies

Certified MongoDB Professional VS-1058

NoSQL, But Even Less Security Bryan Sullivan, Senior Security Researcher, Adobe Secure Software Engineering Team

NO SQL! NO INJECTION?

NoSQL Databases, part II

Frictionless Persistence in.net with MongoDB. Mogens Heller Grabe Trifork

Data Model Design for MongoDB

MongoDB: The Definitive Guide

Web Development using PHP (WD_PHP) Duration 1.5 months

Benchmarking Couchbase Server for Interactive Applications. By Alexey Diomin and Kirill Grigorchuk

HO5604 Deploying MongoDB. A Scalable, Distributed Database with SUSE Cloud. Alejandro Bonilla. Sales Engineer abonilla@suse.com

Querying MongoDB without programming using FUNQL

Introduction to MongoDB. Kristina Chodorow

Hadoop IST 734 SS CHUNG

DIPLOMA IN WEBDEVELOPMENT

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Why NoSQL? Your database options in the new non- relational world IBM Cloudant 1

these three NoSQL databases because I wanted to see a the two different sides of the CAP

Getting Started with the Internet Communications Engine

Can the Elephants Handle the NoSQL Onslaught?

Microsoft Azure Data Technologies: An Overview

Programming Language Rankings. Lecture 15: Type Inference, polymorphism & Type Classes. Top Combined. Tiobe Index. CSC 131! Fall, 2014!

Overview of Databases On MacOS. Karl Kuehn Automation Engineer RethinkDB

Applications for Big Data Analytics

Integrating Big Data into the Computing Curricula

Robot Programming with Lisp

MySQL és Hadoop mint Big Data platform (SQL + NoSQL = MySQL Cluster?!)

Lecture 21: NoSQL III. Monday, April 20, 2015

Riding the Data Wave. New Capabilities New Techniques. Bill Chute Acadiant Limited

NOSQL DATABASE SYSTEMS

Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON

HDB++: HIGH AVAILABILITY WITH. l TANGO Meeting l 20 May 2015 l Reynald Bourtembourg

How, What, and Where of Data Warehouses for MySQL

Why Zalando trusts in PostgreSQL

the missing log collector Treasure Data, Inc. Muga Nishizawa

Visualizing MongoDB Objects in Concept and Practice

Structured Data Storage

An Approach to Implement Map Reduce with NoSQL Databases

Cross Site Scripting (XSS) and PHP Security. Anthony Ferrara NYPHP and OWASP Security Series June 30, 2011

GTask Developing asynchronous applications for multi-core efficiency

Cloudant Querying Options

Open Source Technologies on Microsoft Azure

DocStore: Document Database for MySQL at Facebook. Peng Tian, Tian Xia 04/14/2015

Replicating to everything

Serializing Data with Protocol Buffers. Vinicius Vielmo Cogo Smalltalks, DI, FC/UL. February 12, 2014.

Bigtable is a proven design Underpins 100+ Google services:

Transcription:

What is? Or how I learned to stop worrying and love the database 10gen N*SQL Berlin October 22th, 2009

What is? 1 What is? Document Oriented JavaScript Enabled Fast, Scalable, Available, and Reliable 2 3 Use Cases Links

What is? Document Oriented JavaScript Enabled Fast, Scalable, Available, and Reliable Organized into Databases and Collections (like Tables) Document Oriented JSON-like (BSON) Schemaless Dynamic, Strong Typing Database can reach into objects db.people.insert({ _id: "mstearn", name: "", karma: 42, active: true, birthdate: new Date(517896000000), interests: ["", "Python", "Ampelmännchen"], subobject: {foo: "bar"} });

What is? JavaScript used for: Shell and Documentation (Very) Advanced Queries Group By Queries MapReduce (new) Document Oriented JavaScript Enabled Fast, Scalable, Available, and Reliable db.users.find({$where: "this.a + this.b >= 42"}); db.posts.group( { key: "user", initial: {count:0, comments:0}, reduce: function(doc,out){ out.count++; out.comments += doc.comments.length; }, finalize: function(out){ out.avg = out.comments / out.count; } });

What is? Document Oriented JavaScript Enabled Fast, Scalable, Available, and Reliable Master-Slave replication for Availability and Reliability Replica-Pairs support auto-negotiation for master Auto-Sharding for Horizontal Scalability Distributes based on specified field Currently alpha MMAP database files to automatically use available RAM Asynchronous modifications

What is? Official Python Ruby C++ Perl PHP Java Community Supported Erlang, C#, ColdFusion, and More

What is? JSON String (UTF8) Double Object (hash/map/dict) Array Bool Null / Undefined Extras Date Int32 / Int64 OID (12 bytes) Binary (with type byte)

What is? $set $inc $multiply (soon) $push / $pushall $pull / $pullall db.posts.update({_id:someid}, {$push:{tags:"mongodb"}}) db.tags.update({_id:"mongodb"}, {$inc:{count:1}}, {upsert:true}})

Simple Outline What is? db.posts.findone({ user: "mstearn" }); var cursor = db.posts.find({ user: "mstearn" }); cursor.foreach(function(){ dosomething(this.text); });

Sorted Outline What is? db.posts.find( { user: "mstearn" } ).sort({timestamp:-1})

Paginated Outline What is? db.posts.find( { user: "mstearn" } ).sort({timestamp:-1}).skip(10).limit(10);

Simple Tag Search Outline What is? db.posts.find( { user: "mstearn", tags: "mongo" } ).sort({timestamp:-1}).skip(10).limit(10);

Complex Tag Search Outline What is? db.posts.find( { user: "mstearn", tags: {$in: ["mongo", "mongodb"]} } ).sort({timestamp:-1}).skip(10).limit(10);

Nested Objects Outline What is? db.posts.find( { user: "mstearn", tags: {$in: ["mongo", "mongodb"]}, comments.user: "mdirolf" } ).sort({timestamp:-1}).skip(10).limit(10);

Regular Expressions Outline What is? db.posts.find( { user: "mstearn", tags: {$in: ["mongo", "mongodb"]}, comments.user: "mdirolf", text: /windows/i } ).sort({timestamp:-1}).skip(10).limit(10);

Ranges Outline What is? db.posts.find( { user: "mstearn", tags: {$in: ["mongo", "mongodb"]}, comments.user: "mdirolf", text: /windows/i, points: {$gt: 10, $lt 100} } ).sort({timestamp:-1}).skip(10).limit(10);

Arbitrary JavaScript Outline What is? db.posts.find( { user: "mstearn", tags: {$in: ["mongo", "mongodb"]}, comments.user: "mdirolf", text: /windows/i, points: {$gt: 10, $lt 100}, $where: "this.a + this.b >= 42" } ).sort({timestamp:-1}).skip(10).limit(10);

What is? Use Cases Links Good Websites Complex Objects High-Volume Low-Value Real-time analysis Bad Not Spelled S-Q-L Complex Transactions Business Intelligence

What is? Use Cases Links http://www.mongodb.org http://jira.mongodb.org http://www.github.com/mongodb/ #mongodb on irc.freenode.net mongodb-user on google groups mathias@10gen.com