
¿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


deck
By Mariano Ravinale
deck
- 527