PDF de programación - Mongo DB

Imágen de pdf Mongo DB

Mongo DBgráfica de visualizaciones

Publicado el 24 de Octubre del 2018
1.422 visualizaciones desde el 24 de Octubre del 2018
1,0 MB
15 paginas
Creado hace 4a (14/08/2015)
Mongo DB

Tabla de contenido

1. Introducción
2. Una rápida Introducción
3. Documentos JSON
4. Instalando MongoDB (Windows)
5. Mongo Shell

i. Uso de Javascript
ii. Operaciones CRUD
iii. Operadores

6. Modelando bases de datos

2

Mongo DB

MongoDB

En este documento se encuentra documentación para saber qué es MongoDB y como funciona, cuales son sus ventajas,
desventajas y todo lo que se necesite saber sobre una base de datos NO relacional.

Introducción

3

Mongo DB

Una rápida Introducción

Primero se debe iniciar el shell de mongo con el comando mongo y se verá algo parecido a esto:

> mongo

MongoDB shell version: 2.6.0
connecting to: test
Server has startup warnings:
2014-04-08T13:5:52.831-04400 [initandlisten]
...
...
...

>

Ahora, vamos a usar una base de datos para poder poner nuestras colecciones, para eso usamos el comando use test ,
suponiendo que test es el nombre de la base de datos. En caso de que esta base de datos no haya sido creada
anteriormente, este comando automaticamente la crea.

> use test

switched to db test

>

Para guardar algo en una colección se usa el comando db.things.save() donde db es una palabra clave estándar en el
shell, things es el nombre de la colección (en este caso), save es el comando de guardar y dentro del paréntesis se
insertan los datos que se quieran ingresar dentro de corchetes.

> db.thins.save( { a : 1 , b : 2 , c : 3 } )

WriteResult({ "nInserted" : 1 })

>

Si se quieren ver los objetos de una colección se usa el comando db.things.find() .

> db.thins.find()

{ "_id" : ObjectId("534496f13e1ff5533a25efd2c"), "a" : 1, "b" : 2, "c" : 3 }

>

Para una consulta más específica, en el caso de que se tengan muchos registros en la colección, se usa el mismo
comando de find , pero dentro del paréntesis se especifica la llave y el valor a buscar.

> db.thins.find( { a : 1 } )

{ "_id" : ObjectId("534496f13e1ff5533a25efd2c"), "a" : 1, "b" : 2, "c" : 3 }

>

Hay una forma de imprimir de forma elegante en el shell y es pretty() , se usa después de un find , se vería algo así:

Una rápida Introducción

4

Mongo DB

> db.thins.find().pretty()

{
"_id" : ObjectId("534496f13e1ff5533a25efd2c"), "a" : 1,
"b" : 2,
"c" : 3
}

>

Una rápida Introducción

5

Mongo DB

Documentos JSON

Todos los datos que se guardan en MongoDB, son almacenados en documentos JSON.

Los documentos JSON se componen de dos estructuras básicas: arreglos y diccionarios. Los arreglos son un conjunto de
valores que se encuentran encerrados entre corchetes cuadrados [] y los diccionarios son mapas asociativos
representados por llave:valor que se encuentran encerrados entre corchetes {} .

Cada una de estas estructuras pueden contener a la otra o a si misma, es decir, una arreglo puede contener más arreglos
o quizás un diccionario, así mismo, los diccionarios pueden contener diccionarios y también arreglos.

El concepto para los diccionarios de llave:valor se refiere a que podemos insertar valores con algún identificador para
reconocerlo más facilmente, como por ejemplo si tuvieramos un diccionario con datos personales sería algo como esto:

{"nombre" : "Jason", "edad" : 20}

Como se pudo apreciar en el ejemplo anterior, un diccionario puede tener varios valores, éstos deben separarse por una
coma, además los strings siempre deberían estar entre comillas, en cambio un integer debe estar sin comillas para poder
hacer operaciones con ese dato de ser necesario en el futuro.

Como se dijo anteriormente, un diccionario puede contener otros diccionarios y arreglos dentro, así que continuaré con el
ejemplo de datos personales para ingresar datos dentro de un arreglo y de otro diccionario:

{
"nombre" : "Jason",
"edad" : 20,
"email" : {
"email personal" : "personal@email.com",
"email corporativo" : "corporativo@email.com"
},
"frutas favoritas" : [pera, manzana, ciruela]
}

De la anterior manera se puede apreciar como se usan arreglos y diccionarios dentro de un diccionario, teniendo en
cuenta esto es más fácil organizar varios datos de una persona en un mismo documento, haciendo (en el caso de
MongoDB) que no se necesiten de otras tablas adicionales para ingresar varios datos personales a una persona, como lo
son en este caso las email y frutas favoritas .

Para saber más del tema, puedes visitar www.json.org para más información y entender mucho mejor que es y como se
usa JSON .

Documentos JSON

6

Mongo DB

Instalando MongoDB (Windows)

Primero hay que descargar el instalador de la página oficial mongodb.org/downloads y tener presente si el pc es 32 o 64 bits.

Una vez instalado, para probar que funciona correctamente abrimos una consola cmd de windows y vamos a la ubicación
de donde quedó instalado MongoDB, en mi caso:

cd "\Program Files\MongoDB 2.6 Standard\bin"

Luego, se crea una carpeta data y dentro de ella otra llamada db para que se pueda guardar allí una base de datos.
Luego, se ejecuta el comando mongod.exe en la consola para poner en funcionamiento la base de datos.

En otra consola, nos dirigimos nuevamente a la carpeta de instalación y ejecutamos el comando mongo.exe , esto para
iniciar la consola shell y poder iniciar a manejar la base de datos, desde aquí ya se pueden crear bases de datos, registros
y todo lo necesario para manejar la base de datos, puedes probar con los comandos que se explicaron en el capitulo
anterior.

Instalando MongoDB (Windows)

7

Mongo DB

Mongo Shell

Pagina en mantenimiento

Mongo Shell

8

Mongo DB

Uso de Javascript

En la Mongo Shell se pueden hacer diferentes acciones. Ya que MongoDB está construido sobre Javascript, se pueden
hacer operaciones de Javascript, como por ejemplo un for each, si queremos imprimir en consola 10 veces un termino, se
puede hacer mediante el siguiente comando:

> for (i=0; i<3; i++) print(“Ola ke ase”);

//Esto es lo que retornaría la consola de MongoDB

Ola ke ase
Ola ke ase
Ola ke ase

También se pueden asignar variables de la misma manera que en javascript, en este caso crearemos variables interas
para que se pueda ver con claridad como funcionan las variables en caso de que no se sepa como funciona javascript.

En el siguiente ejemplo, primero creamos una variable x , la cual contendrá un arreblo {a:1} , donde tenemos una llave
a , que contiene un valor 1 , luego de esto vemos como se puede leer ese valor e incluso como transformar la variable a
de la siguiente manera:

> x = {"a":1}
// esto retornará {"a":1}

> x.a
// 1

> x["a"]
//1

> w = "a"
//aquí se le asigna a la variable "w" la variable "a", por lo tanto al llamar "w" se imprimirá el valor de "a"

> x["w"]
//1

Uso de Javascript

9

Mongo DB

Operaciones CRUD

Insert

Para insertar documentos en MongoDB se usa el comando insert , donde se especifican todos los campos y datos de
éstos, se usa de la siguiente manera:

db.people.insert({"name" : "Jason", "age":20})
// WriteResult({"nInserted" : 1})

Find

Para ver los documentos en una colección se usa el comando find y lo usaremos en este momento para ver el dato
recién agregado de la sieguiente manera:

db.people.find()
// {"_id" : "12as78d6a7sd76as", "name" : "Jason", "age" : "20" }

Como podemos notar se crea un id único automáticamente al agregar un documento a la colección.

FindOne

También tenemos el comando findOne , el cual nos devuelve únicamente un resultado. Tanto el comando find , como el
comando findOne , pueden especificar exactamente lo que se quiere buscar dentro del paréntecis, podemos buscar un
campo y un atributo de la siguiente manera, tomando como ejemplo el ejericio anterior:

db.people.findOne({"name":"Jason"})
// {"_id" : "12as78d6a7sd76as", "name" : "Jason", "age" : "20" }

Es posible especificar los datos con más de un campo, por ejemplo:

db.people.findOne({"name":"Jason", "age":"20"})
// {"_id" : "12as78d6a7sd76as", "name" : "Jason", "age" : "20" }

También es posible mostrar solo un campo o dos, depende los que se quieran ver necesariamente, esto es posible
agregando valores true o false , por ejemplo, si queremos mostrar solo el nombre del ejemplo anterior, sería así:

db.people.findOne({ "name":"Jason" },{ "name": true, "_id":false })
// {"name" : "Jason"}

Una manera rápida y potente de insertar documentos en una colección es a partir de un ciclo usando javascript, un
ejemplo un poco mas complejo sería de la siguiente manera:

for (i=0; i<3; i++) { names = [“exam”, “essay”, “quiz”]; for ( j=0; j<3; j++ ) { db.scores.insert( { “student” : i, “type” : ”names[j], score :

Operaciones CRUD

10

Mongo DB

En resumen, la sintaxis anterior imprimiría un estudiante con el nombre de un numero del 0 al 1000 por 3 tipos
diferentes, exam , essay y quiz , y por ultimo un campo de puntaje que se crea al azar. En total serían 3000 documentos
nuevos, cada uno con un id diferente y todo con solo una línea de código, de esta manera se pueden usar funciones
javascript para insertar datos.

Si se realiza el ejercicio anterior, es posible "jugar" con la función find y prácticar un poco, como mostrar sólo ciertos
campos y filtrar registros como mostrar solo los estudiantes que tienen tal puntaje.

Consultando Arreglos

Suponiendo que se tiene una coleccion de personas y una de esas personas tiene un arreglo dentro del valor email , por
ejemplo, tiene un email personal y uno corporativo, al intentar buscarlo por un solo email no retornaría nada, por ejemplo:

db.people.find( { "email" : "jasonruiz@book.com" } )
//nothing

Suponiendo que la persona que tenga un email como el del anterior ejemplo, pero también tenga otro, no va a retornar
nada, debido a que estamos buscando un campo que contena exactamente lo que le pedimos, pero al ser un arreglo va a
tener mas de un dato y no uno como lo estamos consultando, para eso debemos saber que campos tiene ese arreglo, y
suponiendo que ese arreglo tiene dos campos, personal y corporativo , la manera correcta para consultar el em
  • Links de descarga
http://lwp-l.com/pdf14025

Comentarios de: Mongo DB (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad