DocumentDB es un servicio de bases de datos NoSQL que posee algunas ventajas respecto a otras bases de datos de este tipo, por ejemplo:
- Consultas mediante SQL
- Procedimientos almacenados.
- Triggers.
- Funciones definidas por el usuario.
Como se puede observar este servicio cuenta con algunas características de una base de datos relacional por lo que si estamos familiarizados a éstas podemos obtener provecho de ese conocimiento con este servicio.
Nota: Si desean obtener más información de este servicio pueden consultar https://azure.microsoft.com/en-us/documentation/articles/documentdb-introduction/
En este artículo aprenderemos a crear nuestra cuenta de DocumentDB y en los próximos tutoriales accederemos desde C# y nodeJS.
Antes de iniciar debemos mencionar que DocumentDB tiene la siguiente jerarquía:
- Cuenta de DocumentDB
- Bases de datos
- Colecciones (Procedimientos almacenados, disparadores y funciones definidas por el usuario)
- Documentos
- Colecciones (Procedimientos almacenados, disparadores y funciones definidas por el usuario)
- Bases de datos
A continuación se presenta una imagen con la estructura

Una vez que comprendemos la estructura de DocumentDB vamos a ingresar en Microsoft Azure y crearemos una cuenta de DocumentDB
Configuramos nuestro servicio con los siguientes datos:
- Id de la cuenta de DocumentDB
- La suscripción (en mi caso es BizSpark pero puede aparecerles otra opción)
- Grupo de recursos, pueden utilizar uno nuevo o ya existente
- Ubicación, en nuestro caso Este de Estados Unidos
Esperamos a que el servicio se cree
Una vez que se ha creado se nos va desplegar una ventana similar a la siguiente, acá seleccionamos «Agregar base de datos»
Ingresamos el nombre de nuestra base de datos
En nuestra de DocumentDB vamos a observar que ya contamos con una base de datos, vamos a dar click sobre ella
Ahora vamos a crear una colección
En la colección debemos de configurar los siguientes datos:
- Id
- Precio, en nuestro caso estándar
- Modo de partición (En nuestro caso la más sencilla ya que es una demo, si están desarrollando para producción deben de analizar esto):
- Single: almacenamiento de hasta 10GB y entre 400-1000 unidades de solicitud por segundo, cada unidad es equivalente a 1kb.
- Particionado: almacenamiento hasta 250GB y entre 10 000 – 250 000 unidades de solicitud por segundo.
- Llave de partición (solo disponible para opción de particionado), es una propiedad de nuestros documentos que utilizamos para dividirlos. Por ejemplo en caso que se desarrolle una aplicación que cuente con artículos y comentarios, los comentarios pueden ser demasiados por lo que se recomendaría tener una colección para artículos y otra para comentarios, los comentarios tendrían el id del artículo (similar a una llave foránea). Recordemos que es una recomendación y nosotros manejamos el esquema de nuestras bases de datos NoSQL como deseemos.
Ahora seleccionamos nuestra colección
Vamos a crear un documento
Ingresamos la estructura de éste, en nuestro caso será la siguiente
{ "nombre": "Carlos", "edad": 21 }
Nota: Si no establecemos una propiedad id DocumentDB se encargará de hacerlo por nosotros
Agregamos el documento y se nos desplegará una ventana similar a la siguiente
Una vez que tenemos un documento vamos a consultar, para ello en la sección de nuestra colección seleccionamos «Explorador de documentos»
Acá podemos buscar un documento por el id o bien realizando una consulta mediante SQL, pero primero vamos a seleccionar el documento que nos aparece
En una nueva ventana vamos a observar la estructura de éste
Ahora vamos a filtrar nuestros documentos
Opción de id
Ingresamos el id del documento y en caso que coincida con alguno existente aparecerá abajo
Opción de SQL
Debemos seleccionar la opción de «Filtrar» y aparecerá una nueva sección, por defecto la consulta viene como
SELECT * FROM c
Si están familiarizados con SQL recordarán que no hace falta agregarle un alias a la tabla o indicar la tabla con la que se trabaja si es solo una o bien si ninguna de las tablas cuenta con una columna con nombres similares sin embargo en DocumenDB si debemos de realizarlo por lo que si deseamos filtrar por nombre debemos agregar el siguiente código
c.nombre = "Carlos"
También podemos utilizar la cláusula Order By, en nuestro agregaremos un documento más
{ "nombre": "Emma", "edad": 22 }
Ahora agregamos en la sección de Order By lo siguiente
c.edad ASC
También podemos ordenar descendente, en lugar de ASC colocamos DESC
Bueno hemos aprendido a trabajar con nuestra cuenta de DocumentDB, crear colecciones, documentos y consultarlos. En los próximos artículos aprenderemos a crear procedimientos almacenados, además de trabajar con nuestra cuenta desde C# y nodeJS 🙂