Quantcast
Channel: Planeta Linux Venezuela
Viewing all articles
Browse latest Browse all 1457

Yohan Graterol: CRUD en MongoDB (Parte 1: Inserción)

$
0
0

En publicaciones pasadas he mencionado como hacer algunas operaciones básicas en MongoDB, como leer y escribir en una base de datos. Pero hay opciones mas alla de esas funciones, como búsqueda con parámetros, borrar, modificar, opciones avanzadas de modificación, entre otros; Publicaré varios post relacionados con las operaciones CRUD en MongoDB, ya muchos saben CRUD en base de datos SQL, pero en NoSQL varía de una base de datos a otra.

En esta ocasión hablaré sobre la inserción de documentos en MongoDB.

CRUD (Create, Read, Update and Delete)

En computación CRUD es el acrónimo de Crear, Obtener, Actualizar y Borrar (del original en inglés: Create, Read, Update and Delete). Es usado para referirse a las funciones básicas en bases de datos o la capa de persistencia en un software.

http://es.wikipedia.org/wiki/CRUD

Create (Inserción/Crear) en MongoDB

La creación de documentos en MongoDB es relativamente fácil, recordemos que en esta base de datos los documentos están en formato JSON y son almacenados en formato BSON. Teniendo esto en cuenta, todo lo que queramos trabajar en MongoDB se tiene que hacer solo y exclusivamente en formato JSON.

En SQL se utiliza la función “INSERT INTO” para almacenar registros en una base de datos, en MongoDB existen 2 funciones “.insert” y “.save”.

Función INSERT

La función insert es la primera función para insertar documentos en una base de datos dentro de una colección.

La sintaxis es la siguiente: db.coleccion.insert( { ” documento ” } )

Ahora hay que considerar las siguientes restricciones y limitaciones:

  1. Si el campo “_id” esta duplicado se lanza una excepción.
  2. El tamaño máximo de un documento BSON es de 16 mb.
  3. El campo “_id” es usado como clave primaria.
  4. Ningún campo puede comenzar con $ y tampoco puede comenzar con un punto.

Ejemplo:

1
2
3
4
5
6
> db.prueba.insert(
... {_id: "yograterol.me",
...  url: "http://www.yograterol.me",
...  descripcion: "Un blog personal donde trato de plasmar mis conocimientos"
... }
... )

Veamos el resultado

1
2
3
4
5
6
> db.prueba.findOne()
{
 "_id" : "yograterol.me",
 "url" : "http://www.yograterol.me",
 "descripcion" : "Un blog personal donde trato de plasmar mis conocimientos"
}

Ahora bien, el campo “_id” es un campo OBLIGATORIO, este campo se puede asignar como en este caso, ahora que sucede si  no especificamos el campo “_id”?. Si no se especifica un “_id”, MongoDB genera un valor de 12 bytes de tipo ObjectId donde:

  • 4 bytes son de timestamp (fecha y hora).
  • 3 bytes del identificador de la computadora.
  • 2 bytes del numero de proceso.
  • 3 bytes de un contador que comienza con un número aleatorio.

Ejemplo:

1
2
3
4
5
> db.prueba.findOne()
{
 "url" : "http://www.yograterol.me",
 "descripcion" : "Un blog personal donde trato de plasmar mis conocimientos"
}

Resultado

1
2
3
4
5
6
> db.prueba.findOne()
{
 "_id" : ObjectId("513d2658ee90d8a99f992c02"),
 "url" : "http://www.yograterol.me",
 "descripcion" : "Un blog personal donde trato de plasmar mis conocimientos"
}

Inserción de múltiples documentos

1
2
3
4
5
6
7
8
9
10
11
12
> db.prueba2.insert(
... [
... {_id: "Documento1",
...  bd: "Relacional",
...  nombre: "PostgreSQL"
... },
... {_id: "Documento2",
...  bd: "NoSQL documental",
...  nombre: "MongoDB"
... }
... ]
... )

Resultado

1
2
3
> db.prueba2.find()
{"_id" : "Documento1", "bd" : "Relacional", "nombre" : "PostgreSQL"}
{"_id" : "Documento2", "bd" : "NoSQL documental", "nombre" : "MongoDB"}

Función SAVE

Es similar a la función INSERT en las nuevas versiones de MongoDB.

Finalizando

En este post aprendimos a insertar documentos en MongoDB con INSERT y/o SAVE… Vimos algo de la función find sin profundizar, el próximo post se tratara del comando find(). Hasta la próxima!


Viewing all articles
Browse latest Browse all 1457

Trending Articles