Introduccion

Base de datos, de la familia NOSQL, orientada a documentos, maneja los datos en formato JSON 

Caracteristicas

  • NOSQL
  • Orientada a documentos/colecciones
  • JSON
  • Flexible
  • Escalar horizontalmente "facil de replicar a través de múltiples maquinas"
  • Rapida
  • Diversidad de desarrollo "drivers"

Instalación

 

 

https://www.mongodb.org/downloads#production

//inicializa el servicio de mongodb
> mongod
//Se conecta a el servicio de mongodb y tiene acceso a las operaciones que ofrece 
> mongo
> use miColeccion //indica que va a usar una coleccion en caso tal de que no exista la crea.
> switched to db miColeccion

JSON

JAVASCRIPT

OBJECT

NOTATION

{llave:valor}

 

{hola:"mundo"}

{
    nombre:"A",
    edad:1,
    hijos:[{
        nombre:"B",
        edad:2        
    }],
    cazado:false
}

Colección de documentos

 

[{
    nombre:"A",
    edad:1,
    hijos:[{
        nombre:"B",
        edad:2        
    }],
    cazado:false
},{
    nombre:"C",
    edad:1,
    cazado:true
}]

Ejemplo

http://www.google.com/doodles/json/2012/12?hl=es_419

Operaciones (CRUD)

 Crear, Leer, Actualizar y Borrar 

> db.miColeccion.insert()//crear
> db.miColeccion.find()//leer
> db.miColeccion.update()//actualizar
> db.miColeccion.remove()//borrar
$or // conditional

$and // conditional 

$push // agregar

$elemMath //element match | elemento encontrado

$in // inside

$gt // > greet that

$lte // <  less that

$set // establecer

....
> db.miColeccion.insert({
>     nombre:"pipito",
>     apellido:"perez",
>     edad:20,
>     lenguajes:["ingles","español","japones","frances"]
> }) //inserta un documento a la colección 


> db.miColeccion.insert({
>     nombre:"juan",
>     apellido:"godines",
>     edad:20,
>     lenguajes:["ingles","español"]
> }) //inserta un documento a la colección 

Crear

> var consulta = { edad:20 }
> db.miColeccion.find(consulta)


> db.miColeccion.findOne({
>  nombre:"pepito"
> })

> db.miColeccion.find({ edad:20 }).limit(1)

Leer

> var criterio_busqueda = { nombre:"juan" }
> var actualizacion = {
>    $push : {
>        lenguajes:"portugués"
>     }
> }

> db.miColeccion.update(criterio_busqueda,actualizacion)

> db.miColeccion.update({ nombre:"pepito" },{
>    $push : {
>        lenguajes:{  
>            $each:["aleman","italiano"] }  
>        }
>    }
>  }
> })


> db.miColeccion.update({ nombre:"pepito" },{
>   $set:{nombre:"calos"}
> })

Actualizar

> db.miColeccion.find({"lenguajes":"español"})

> use maestro
//switch to db maestro

> db.maestro.insert({
>  nombre:"Julian",
>  clase:"ingles",
>   estudiantes:[{
>    nombre:"juan",
>    edad:20
>   },{
>    nombre:"jose"
>    edad:16
> }]  

> db.maestro.find({
>  "estudiantes.nombre":"juan"
> })

Busqueda de profundidad

> var mayor = {$gt:18}
> var esAdulto = {
>     $set: { "esAdulto":true }
> }

> db.maestro.update({"estudiantes.edad":mayor},esAdulto)
> db.maestro.update({"estudiantes.nombre":"jose"},{
>    $set:{
>      "estudiantes.$.nota":4
>   }
>  })


 

Modificando documentos embebidos

> var nuevos_estudiantes = [{
>    nombre:"diego"
> },{
>    nombre:"miguel"
> }]

> db.maestro.update({nombre:"Julian"},{
>      $push:{
>        estudiantes :{ $each : nuevos_estudiantes }
>      }  
> })

> db.maestro.update({
>  "estudiantes":{ $ne: "nota" }  
>  },{
>    $set:{ 
>        "estudiantes" : {"nota" : 0} 
>  }
},{ multi: true })

Modificando documentos embebidos

db.maestro.update({nombre:"Julian"},{
    $pull:{
       estudiantes:{nombre:"jose"}
   }
})

Removiendo documentos embebido

Removiendo documento 

> db.maestro.remove({nombre:"Julian"}) //remueve un documento

> db.maestro.remove({}) // remueve todo los documentos

MongoDB

By Esneyder Amin Palacios Mena

MongoDB

  • 273