Curso certificación mongodb

MongoDB es una de las soluciones para bases de datos no estructurados (NoSQL) más populares y demandadas a nivel profesional. Se está promoviendo su uso y la certificación de los desarrolladores familiarizados con diferentes lenguajes de programación a través de formación y servidores de prueba gratuitos. Como complemento a la formación oficial, se propone este curso para hacer el aprendizaje más rápido y completo para alcanzar la certificación y las competencias profesionales.


Introducción

En este artículo encontrarás el recorrido propuesto desde Data On The Road para que tengas un aprendizaje más eficiente. Primero de todo te pedimos que eches un ojo a este artículo para tener tener todos los detalles sobre la certificación MongoDB para desarrolladores (se explica también como obtener un descuento a la hora de certificarte).

Explicaremos a continuación que material proporciona Mongo University, y te recomendamos, que si no tienes experiencia previa, dediques un tiempo, ya que la ayuda que recibirás de Data on the Road, está orientada a superar la certificación y a obtener a la vez, competencia profesional.


A continuación, se explicarán los prerrequisitos referentes al entorno, tanto para configurar un dataset en el cloud, como para poder acceder desde vuestros ordenadores con la herramienta Compass. La configuración a través de una aplicación, que en este caso será Java, se detallará en la sección 6.


Entrando en materia, cada una de las siguientes secciones corresponderá a las competencias definidas en la certificación y que se distribuyen de la siguiente manera:

  • Section 1: MongoDB overview and the document model (8%)
  • Section 2: CRUD (51%)
  • Section 3: Indexes (17%)
  • Section 4: Data modeling (4%)
  • Section 5: tools and tooling (2%)
  • Section 6: Drivers (18%)


Cada una de las secciones, contiene en detalle una competencia. Por ejemplo, la sección 1 pide que "1.1 Identifiquemos el tipo de campos disponibles en MongoDB" y "1.2 Con la existencia de tres documentos indicar cual de los propuestos puede coexistir con los anteriores". En cada una de estas páginas encontrarás una sección de conocimientos teóricos y consejos, después secuencias de comandos para que experimentes y finalmente preguntas para retar tus conocimientos de cara a la certificación.

Recordaros que a pesar de estar orientado a la certificación en Java, el restantes 82% de la certificación es libre de cualquier lenguaje.

Mucha suerte, y a disfrutar del camino

Antes de empezar

Image by Freepik

Dedica 15 minutos a entender que es MongoDB y sus certificaciones. Para ayudarte a evaluar y que tomes la mejor decisión, te hemos preparado este artículo:

Introducción al curso de certificación mongodb for developers

Dependiendo de tu nivel, recomendamos que sigas la siguiente formación en MongoDB University. A pesar de que completarla no conlleva la certificación, si que recibirás un certificado de asistencia, y un descuento para la certificación:

  1. Introduction to MongoDB Course
  2. Using mongodb with Java
  3. Java Learning Path


Finalmente, antes de empezar con las lecciones y sus ejercicios, te recomendamos que sigas estos dos tutoriales

Section 1: MongoDB overview and the document model

Introducción a MongoDB y el modelo de documentos

Para superar con éxito esta sección, debemos comprender que es el modelo basado en documentos, un paso algo complejo si nuestra experiencia previa ha sido con bases de datos relacionales. En concreto, se nos pedirá:

[1.1] Identificar los tipos de campos permitidos en los BSON de MongoDB

[1.2] Dados tres documentos que tienen forma diferente, identificar cuales pueden coexistir en la misma colección

Section 2: CRUD

CRUD - Crear (create), leer (read), actualizar (update), eliminar (delete)

Bienvenidos a la sección más extensa de la certificación, con un peso del 51%. Dominar esta sección será clave para superar la certificación, por el volumen de preguntas, y por ser relativamente más fáciles que el resto de secciones. El conocimiento adquirido con estos módulos serán también los más vinculantes en el entorno laboral. Se complementa también con una sección para las competencias referentes a las pipelines.

Crear (create)

Leer (read)

Sin duda, a efectos prácticos, la interacción con la base de datos mas usada, y por tanto la que se debe conocer con más fluidez. Aunque de primeras parezca que un error en la lectura, no puede conllevar consecuencias graves, una mal uso puede afectar al rendimiento de toda la base de datos

[2.8] Dado un escenario donde solo un documento debe ser filtrado por una cláusula (constraint), identificar la expresión que debe usarse.

[2.9] Identificar los documentos filtrados con una condición de igualdad con un campo tipo Array

[2.10] Identificar los documentos filtrados con una condición de operadores relacionales

[2.11] Identificar los documentos filtrados con el operador $in

[2.12] Identificar los documentos filtrados con el operador $elemMatch

Actualizar (update)

Después de la eliminación de un documento, está es la operación más delicada. Un error puede significar actualizar un campo incorrecto o sobre documentos que no queríamos. En concreto deberemos:

[2.2] Dado un escenario de actualización donde se proporciona un documento entero, identificar el resultado (output) y como ha cambiado el estado de la base de datos

[2.3] Dado un escenario de actualización donde se usa el operador $set, identificar el resultado (output) y como ha cambiado el estado de la base de datos

[2.4] Dado un escenario donde se especifica el documento a actualizar y la información que se ve afectada. Especificar el comando upsert que debería utilizarse.

[2.5] Dado un escenario donde más de un documento debe actualizarse, identificar la expresión correcta para realizar la actualización

[2.6] Dado un escenario donde concurrentemente se ejecuta el comando findAndModify, identificar el resultado (output) y como ha cambiado el estado de la base de datos

Eliminar (delete)

[2.7] Para un debido comando de Mongosh y un escenario con documentos estructurados, si se creará un documento correctamente.

Básicamente deberemos tener en cuenta las reglas sobre el ObjectId, y otros tipos de datos (Double, Arrays, String,...) así como la correcta sintaxis de la instrucción insert() y insertMany()

Pipelines

Las pipelines pueden definirse como una forma alternativa de realizar consultas complejas basando en pasos. Están fuertemente indicadas cuando queremos agrupar los datos o guardarlos de forma estática en otra colección. Referente a la instruction aggregation, deberemos aprender a:

[2.17] Identificar las expresiones usadas para contar el número de documentos para una consulta (query) específica (con o o son pipelines)

[2.20] Dada una expresión de agregació que usa $match y $group, identificar el resultado (output) correcto.

[2.21] Dada una expresión de agregació que usa $lookup identificar el resultado (output) correcto.

[2.22] Dada una expresión de agregació que usa $out identificar el resultado (output) correcto.

Section 3: Indexes

Índices

Los índices son mecanismos para organizar la información y que permiten hacer lecturas más eficientes. Aunque puede haber un beneficio, un abuso puede poner en peligro el correcto funcionamiento, ya que penaliza la escritura.

En esta sección cubriremos las siguientes competencias:

[3.1] Dada una consulta (query) que realiza un SCAN sobre una colección, identificar que índice puede mejorar la ejecución (performance) de la consulta.

[3.2] Dada una consulta (query) que realiza un SCAN sobre una colección donde se usa el operador $match sobre un campo de Array, identificar que índice puede mejorar la ejecución (performance) de la consulta.

[3.3] Dada una consulta (query) que realiza una ordenación sobre dos campos de una colección, identificar que índice puede mejorar la eficiencia (performance) de la consulta.

[3.4] Dada una colección, identificar que índices existen

[3.5] Identificar malas prácticas en producción.

[3.6] Identificar los resultados del "explain plan" que pueden tener un problema potencial de eficiencia (performance), especificar si existe un índice o no en esa query

Section 4: Data modeling

Modelaje de los datos

Esta sección es la más teórica del temario, y a la vez, la que puede llevar más ambigüedad, puesto que diferentes desarrolladores pueden tener diferente punto de vista. Aun así, de cara a la certificación, solo se pide identificar el tipo de relación entre entidades y reportar que anti patrón se ha usado en el modelado. Representa un 4% del examen, y aunque tenga poco peso, al ser las preguntas muy acotadas, se deberían poder responder.

[4.1] Dado un escenario con tres colecciones (una padre, y dos hijos) y un usuario, identificar la relación que existe entre ellas

[4.2] Identifica anti patrones en el modelaje

Section 5: Tools and tooling

Herramientas

Esta es la sección más abstracta de toda la certificación, las preguntas pueden ser muy dispares entre un examen y otro, pero al representar solo un 2% puede ser que inclusive no aparezcan. Aunque la guía hace referencia a adquirir el primer documento de una colección, existen diferentes formas de obtenerlo.

[5.1] Dado un escenario donde se ha cargado el Sample Dataset en Atlas. Usar el Data Explorer para encontrar el primer documento en una colección.

Section 6: Drivers

Image by jcomp on Freepik

Drivers

Entender los drivers de un lenguaje específico representa el 18% de la certificación, por tanto, va marcar que la pasemos con éxito o fallemos. En este curso hemos preparado documentación para pasar la certificación de desarrollador para Java. Aunque queremos preparar la formación para los otros 3 lenguajes, aun no tenemos fecha prevista. Si eres desarrollador de Python, Node.js o C# puedes usar el resto de la formación para preparar el examen, ya que se focaliza en Mongo, y escéptico a ningún lenguaje.

[6.1] Que es un driver

[6.2] Define como la XX aplicación conecta/usa el driver XX

[6.3] Define el componente de la cadena URI utilizada per MongoClient a conectar el driver a la base de datos

[6.4] Ventajas de usar un pool de conexiones

[6.5] Identificar la sintaxis para el driver XX para insertar uno o muchos documentos

[6.6] Identificar la sintaxis para el driver XX para actualizar uno o muchos documentos

[6.7] Identificar la sintaxis para el driver XX para eliminar uno o muchos documentos

[6.8] Identificar la sintaxis para el driver XX para encontrar uno o muchos documentos

[6.9] Identificar la sintaxis para el driver XX para crear pipelines

[6.10] Identificar la sintaxis para el driver XX cuando se use MongoDB Query Language (MQL) y cuando usa el Aggregation Framework