Tutorial Rápido MongoDB – Parte 3

PorErik Guerrero V.

Tutorial Rápido MongoDB – Parte 3

INDICE

11.-UPDATE
12.-REMOVE
13.-DROP
14.-DROPDATABASE
15.-BETWEEN


11.-ACTUALZIZAR CON UPDATE, Actualizar un documento

#Obtenemos un registro a modificar
> var test = db.usuarios.findOne({“_id” : ObjectId(“5a870818d3cc24c62cfef22e”)})

#Mostramos
> test

Out:
{
“_id” : ObjectId(“5a870818d3cc24c62cfef22e”),
“dni” : “41327322”,
“nombre” : “Edwim Guerrero”,
“edad” : 35,
“fecharegistro” : ISODate(“2018-02-16T16:33:39.481Z”),
“pais” : “Perú”
}

#Cambiamos
> test.nombre = “nuevo nombre cambiado”

#Montramos
> test

Out:
{
“_id” : ObjectId(“5a870818d3cc24c62cfef22e”),
“dni” : “41327322”,
“nombre” : “nuevo nombre cambiado”,
“edad” : 35,
“fecharegistro” : ISODate(“2018-02-16T16:33:39.481Z”),
“pais” : “Perú”
}

#Actualizamos, como primer parámetro la condicional del documento a actualizar, y como segundo parámetro el documento modificado
> db.usuarios.update({“_id” : ObjectId(“5a870818d3cc24c62cfef22e”)}, test)

Out:

WriteResult({ “nMatched” : 1, “nUpserted” : 0, “nModified” : 1 })

Ejemplo 2: Actualizar un documento enviando como parámetro los valores con el comando $set, “Ojo: sólo actualizará el primero documento encontrado”.

>db.usuarios.update( {“_id” : ObjectId(“5a870818d3cc24c62cfef22e”)}, {$set: {nomnbre:”Cambiando con SET”}})

Out:
WriteResult({ “nMatched” : 1, “nUpserted” : 0, “nModified” : 1 })

Revisamos

>db.usuarios.find()

Out:

{
“_id” : ObjectId(“5a870818d3cc24c62cfef22e”),
“dni” : “41327322”,
“nombre” : “Cambiando con SET”,
“edad” : 35,
“fecharegistro” : ISODate(“2018-02-16T16:33:39.481Z”),
“pais” : “Perú”
}

Ejemplo 3: Actualizar más de un documento agregando el tercer parámetro {multi:true}>

>db.usuarios.update({},{$set:{edad:40}}, {multi:true})

Out:
WriteResult({ “nMatched” : 5, “nUpserted” : 0, “nModified” : 5 })

> db.usuarios.update({edad:40}, {$set: {dni:99999999}}, {multi:true})

Out:
WriteResult({ “nMatched” : 5, “nUpserted” : 0, “nModified” : 5 })

Ejemplo 4: Eliminar Campo de uno o varios documentos con $unset.

Elimina el campos con nombre “fecharegistro” de cada documento que comprenda el filtro especificado.

> db.usuarios.update({}, {$unset:{fecharegistro:1}}, {multi:true})

Out:
WriteResult({ “nMatched” : 5, “nUpserted” : 0, “nModified” : 3 })

12.- REMOVE: Elimina documentos.

Ejemplo:

Datos:
> db.usuarios.find();

{ “_id” : ObjectId(“5a8af44bdb5aac3df0ee5525”), “edad” : 15, “nombre” : “u1” }
{ “_id” : ObjectId(“5a8af44fdb5aac3df0ee5526”), “edad” : 15, “nombre” : “u1” }
{ “_id” : ObjectId(“5a8af451db5aac3df0ee5527”), “edad” : 16, “nombre” : “u2″ }

Remover con condicional:
> db.usuarios.remove({nombre:”u1”})

Remover sin condicional:
> db.usuarios.remove({})

Out:
WriteResult({ “nRemoved” : 2 })

13.-DROP: Elimina una colección.

> db.usuarios.drop()

Out:
True

>show collections
>

14.-DROPDATABASE, eliminar una base de datos

> db.drodDatabase()

Out:
{ “dropped” : “dbtest”, “ok” : 1 }

15.-BETWEEN, Mostrar sólo los documentos que contengan el rango de criterios.

Operadores:

$gt > greater than
$gte >= greater than equals
$lt < less than
$lte <= less than equals

Datos:

>db.usuarios.find();

Out:

{ “_id” : ObjectId(“5a8affdcdb5aac3df0ee5528”), “nombre” : “u1”, “edad” : 20 }
{ “_id” : ObjectId(“5a8affdedb5aac3df0ee5529”), “nombre” : “u2”, “edad” : 21 }
{ “_id” : ObjectId(“5a8affe0db5aac3df0ee552a”), “nombre” : “u3”, “edad” : 22 }
{ “_id” : ObjectId(“5a8affe2db5aac3df0ee552b”), “nombre” : “u4”, “edad” : 23 }
{ “_id” : ObjectId(“5a8affe4db5aac3df0ee552c”), “nombre” : “u5”, “edad” : 25 }
{ “_id” : ObjectId(“5a8affe8db5aac3df0ee552d”), “nombre” : “u6”, “edad” : 26 }
{ “_id” : ObjectId(“5a8affebdb5aac3df0ee552e”), “nombre” : “u7”, “edad” : 27 }

Mostrando sólo los campos necesarios

>db.usaurios.find({}, {_id:0, nombre:1, edad:1})

Out:

{ “nombre” : “u1”, “edad” : 20 }
{ “nombre” : “u2”, “edad” : 21 }
{ “nombre” : “u3”, “edad” : 22 }
{ “nombre” : “u4”, “edad” : 23 }
{ “nombre” : “u5”, “edad” : 25 }
{ “nombre” : “u6”, “edad” : 26 }
{ “nombre” : “u7”, “edad” : 27 }

Ejemplo 1: $gt >

> db.usuarios.find({edad: {$gt:25}})

Out:
{ “_id” : ObjectId(“5a8affe8db5aac3df0ee552d”), “nombre” : “u6”, “edad” : 26 }
{ “_id” : ObjectId(“5a8affebdb5aac3df0ee552e”), “nombre” : “u7”, “edad” : 27 }

Ejemplo 2: $gte >=

> db.usuarios.find({edad: {$gte:25}})

Out:
{ “_id” : ObjectId(“5a8affe4db5aac3df0ee552c”), “nombre” : “u5”, “edad” : 25 }
{ “_id” : ObjectId(“5a8affe8db5aac3df0ee552d”), “nombre” : “u6”, “edad” : 26 }
{ “_id” : ObjectId(“5a8affebdb5aac3df0ee552e”), “nombre” : “u7”, “edad” : 27 }

Ejemplo 3: $lt <

> db.usuarios.find({edad: {$lt:25}})

Out:
{ “_id” : ObjectId(“5a8affdcdb5aac3df0ee5528”), “nombre” : “u1”, “edad” : 20 }
{ “_id” : ObjectId(“5a8affdedb5aac3df0ee5529”), “nombre” : “u2”, “edad” : 21 }
{ “_id” : ObjectId(“5a8affe0db5aac3df0ee552a”), “nombre” : “u3”, “edad” : 22 }
{ “_id” : ObjectId(“5a8affe2db5aac3df0ee552b”), “nombre” : “u4”, “edad” : 23 }

Ejemplo 4: $lte <=

> db.usuarios.find({edad: {$lte:25}})

Out:
{ “_id” : ObjectId(“5a8affdcdb5aac3df0ee5528”), “nombre” : “u1”, “edad” : 20 }
{ “_id” : ObjectId(“5a8affdedb5aac3df0ee5529”), “nombre” : “u2”, “edad” : 21 }
{ “_id” : ObjectId(“5a8affe0db5aac3df0ee552a”), “nombre” : “u3”, “edad” : 22 }
{ “_id” : ObjectId(“5a8affe2db5aac3df0ee552b”), “nombre” : “u4”, “edad” : 23 }
{ “_id” : ObjectId(“5a8affe4db5aac3df0ee552c”), “nombre” : “u5”, “edad” : 25 }

Ejemplo 5: Combinando operadores.

Mostrar los documento cuyo atributo edad sea mayor o igual a 20 y menor o igual a 22, y sólo muestre los campos _id y edad.

> db.usuarios.find( {edad: {$gte:20, $lte:22}}, {edad:1})

Out:
{ “_id” : ObjectId(“5a8affdcdb5aac3df0ee5528”), “edad” : 20 }
{ “_id” : ObjectId(“5a8affdedb5aac3df0ee5529”), “edad” : 21 }
{ “_id” : ObjectId(“5a8affe0db5aac3df0ee552a”), “edad” : 22 }

Facebook Comments

About the author

Erik Guerrero V. administrator

Mas de 10 años de experiencia como analista programador, tanto backend como frontend, muchos proyectos tanto intranet, extranets, redes sociales, publicitarios, comercio electrónicos, ERP, CRM, BI, SIst. de Gestion, Email Marketing, Sist. Financieros, Contables, también me desempeño como freelance en mis tiempos libres, como también me dedico a la investigación en cuanto a nuevas tecnologías.