¿Qué es MongoDB?

  • Es una base de datos orientada a documentos.
  • Guarda los datos en documentos de formato Json en vez de los tradicionales registros del modelo relacional

Fortalezas

  • No se necesita definir un esquema.
    • Nos da flexibilidad permite achicar la brecha entre OOP y datos
  • Alta velocidad y peformance.
  • Alta escalabilidad, gracias a su facilidad de replicacion.

Debilidades

  • No existen transacciones
    • operaciones atomicas a nivel de documentos.
  • No existen Joins
    • en 2 o mas collecciones tenemos que hacer mas de 1 consulta

 

Documentos

MongoDB guarda la informacion en documentos que son pares de clave valor en formato JSON

Colecciones

  • Mongo db guardalos documentos como colleciones
  • Las collecciones serian como las tablas de la base de datos relacionales

Consultas I

  • Tiene como target un set de documentos, especificando un criterio o condiciones de busqueda.
  • Pueden incluir proyecciones o cursores.

 

Consultas II

    Analogia entre queries en mongodb y SQL

    VS

Operaciones de escritura I

    Analogia entre queries en mongodb y SQL

    VS

Operaciones de escritura II

    Analogia entre queries en mongodb y SQL

    VS

Instalando MongoDB

Instalando MongoDB

cliente

server

instalacion

RoboMongo

Mongo Lab

Consultas con nodeJS I

Consultas con nodeJS II

var mongoose = require('mongoose');
// Mongoose Schema definition
var Schema = mongoose.Schema;
var UserSchema = new Schema({
    _id: String,
    name: String,
    age: String,
    status: String,
    groups: [String]
});

// Mongoose Model definition
var User = mongoose.model('users', UserSchema);

// Mongoose connection to MongoDB 
mongoose.connect('mongodb://makingsense:1qaz2wsx@ds037272.mongolab.com:37272/demo', function (error) {
    if (error)return console.log(error); 

    User.find({}, function (err, docs) {
        console.log(docs);      
        mongoose.connection.close(function () {
           process.exit(0);
        });             
    });   
});


Mongoose & Express

var express = require('express');
var mongoose = require('mongoose');
var app = express();

// Mongoose Schema definition
var Schema = mongoose.Schema;
var UserSchema = new Schema({
    _id: String,
    name: String,
    age: String,
    status: String,
    groups: [String]
});
// Mongoose Model definition
var User = mongoose.model('users', UserSchema);


// URLS management
app.get('/', function (req, res) {
    res.send("<a href='/users'>Show Users</a>");
});

app.get('/users', function (req, res) {
    User.find({}, function (err, docs) {
        res.json(docs);
    });
});


// Mongoose connection to MongoDB 
mongoose.connect('mongodb://makingsense:1qaz2wsx@ds037272.mongolab.com:37272/demo', function (error) {
    if (error)return console.log(error);
    console.log("MongoDB: connection to database succesful!");
     
    var server = app.listen(80, function () { 
      console.log('Express: listening port: ', server.address().port);
    });
    
});

var endMongoConnection = function() { 
  mongoose.connection.close(function () {
    process.exit(0);
  });
}

Todo + Persistance demo

Made with Slides.com