Cargando



Convertir bases de datos relacionales y SQL para MongoDB

Cada base de datos en MongoDB consiste en colecciones que son equivalentes a una base de datos RDBMS o relacionales que consiste en tablas SQL. Cada base de datos, almacena los datos de recogida en la forma de documentos que es equivalente a las tablas que almacenan datos en filas.


feb 14 2014 16:01
feb 17 2014 10:45
Cada base de datos en MongoDB consiste en colecciones que son equivalentes a una base de datos RDBMS o relacionales que consiste en tablas SQL. Cada base de datos, almacena los datos de recogida en la forma de documentos que es equivalente a las tablas que almacenan datos en filas.

Mientras que almacena los datos de fila en el conjunto de columnas, un documento tiene una estructura JSON (conocido como BSON en MongoDB). Por último, la forma en que tenemos filas en una fila de SQL, que tiene campos en MongoDB.


rb.jpg


Equivalentes entre consultas sql y consultas Mondodb

supongamos la base de datos mysql anterior veremos como mapear y convertir las consultas

Crear una tabla o colección
En MongoDB, no hay necesidad de crear de forma explícita la estructura de colección, como lo hacemos para las tablas con una consulta CREATE TABLE. La estructura del documento se crea automáticamente cuando la primera inserción se produce en la colección. Sin embargo, puede crear una colección vacía mediante el comando createCollection.

Mysql
CREATE TABLE `clientes` (`id` int(11) NOT NULL AUTO_INCREMENT,`nombre` varchar(255) NOT NULL,`ciudad` varchar(20) NOT NULL, PRIMARY KEY (`id`))

MongoDB
db.createCollection("clientes")

Para añadir registros de datos

MYSQL
INSERT INTO `clientes` (`id` ,`nombre` ,`ciudad`)VALUES (NULL , 'Fernan', 'Barcelona');

MongoDB
db.clientes.insert({nombre:"Fernan", ciudad:Barcelona"})

Mostrar todos los registros
Mysql
SELECT * FROM `clientes`

MongoDB
db.clientes.find()

Buscar un cliente por nombre

Mysql
SELECT * FROM `clientes` WHERE `nombre` = 'Fernan'

MongoDB
db.clientes.find({nombre:"Fernan"})

Ahora vamos a añadir más criterios para recuperar cliente por nombre y ciudad. Los campos de criterios especificados usando comas representan la condición lógica AND. Por lo tanto, esta declaración va a buscar documentos que tengan las dos criterios.

Mysql
SELECT *` FROM `clientes` WHERE `nombre` = 'Fernan' AND `ciudad` = 'Barcelona'

MongoDB
db.clientes.find({nombre:"Fernan",ciudad:"Barcelona"})


Mostrar todos los registros de la tabla clientes ordenados en forma ascendente por nombre

Mysql
SELECT * FROM `clientes` ***** by nombre ASC

MongoDB
db.clientes.find().sort({nombre:1})

Para limitar el número de documentos que se devolverán, se utiliza el método de límite de la especificación del número de documentos.

Mysql
SELECT * FROM `clientes` LIMIT 10

MongoDB
db.clientes.find().limit(10)

Para saltar un número de registros, se utiliza la función de skip en MongoDB. Por ejemplo, la siguiente sentencia se limita 10 registros y salta los primeros cinco.

Mysql
SELECT * FROM `posts` LIMIT 10 OFFSET 5

MongoDB
db.clientes.find().limit(10).skip(5)

Para el método de actualización se especifican los criterios para seleccionar los documentos. El primer parametro es para identificar el registro, el segundo parámetro especifica el funcionamiento real de actualización que se realizará. Por ejemplo, la siguiente consulta selecciona todos los documentos con nombre Carlos y establece su ciudad como Madrid.

Una diferencia aquí es que, por defecto, MongoDB consulta de actualización actualiza sólo un registro y la primera coincidente del documento. Para actualizar todos los documentos correspondientes que tenemos que ofrecer un tercer parámetro que especifica múltiples como verdadero lo que indica que queremos actualizar varios documentos.

Mysql
UPDATE clientes SET ciudad = "Madrid" WHERE nombre='Carlos'

MongoDB
Actualizar todos los coincidentes
db.clientes.update({nombre:"Carlos"},{$set:{ciudad:"Madrid"}},{multi:true})
Actualizar el primer registro coincidente
db.clientes.update({nombre:"Carlos"},{$set:{ciudad:"Madrid"}})

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X