Curso certificación mongodb

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

Dentro de la segunda sección de la certificación, la competencia de crear, y la de eliminar, son las que menos peso tienen. Aun así, es importante conocer la normativa para insertar uno o varios documentos, y las posibles trampas que pueden aparecer durante el examen.

Contexto teórico

A la hora de responder preguntar referentes a la creación, ten en cuenta las siguientes observaciones.

  1. Los comandos de creación son insertOne({..}) e insertMany({..}). Cuando veamos insert({..}), se tratará de una trampa, también pueden usar otros verbos para confundirnos, como "add". También es obligatorio que el contenido del parámetro esto limitado por {}
  2. El _id es opcional, si no se pone, entonces será autogenerado por MongoDB.
  3. Hay una normativa a la hora de declarar los campos dentro del BSON, un error común sería no limitar un campo de tipo texto con comillas. Para valores numéricos, solo se acepta la anotación numérica, por ejemplo, 1024k, no es un valor aceptado. En el caso de los booleanos, los únicos valores aceptados son "true" y "false".
  4. En el caso del insertMany, la sintaxis es db.<collection.insertMany([{},{},{},...])

Secuencia: crear documentos sobre una base de datos de prueba


Crea la base de datos y la colección

Desde la herramienta Compass, una vez iniciada la sesión, debes apretar en el botón (+) en la línea que pone Databases. En nuestro caso la llamaremos "certification". Una vez creada, al pasar el botón por encima del nombre de la base de datos, volverá a aparecer un botón (+). Entonces crear una colección que se llame "mycollection".

Crear el primer documento

Desde la consola de MongoSh, debes indicar que estás usando la base de datos "certification", a través del comando "use". Podemos crear entonces un documento bien sencillo:

db.mycollection.insertOne({_id: 1, country: "ESP"})

En la pantalla de documents, podemos visualizra el documento que acabamos de crear.

Visualización de un documento

Crear documento sin _id

Ahora crearemos un segundo documento, pero sin introducir el _id, para probar como Mongo nos notifica del valor que ha dado por defecto. Para ello, emplearemos el siguiente comando

db.mycollection.insertOne({country: "PER"})

La consola nos retorno un documento con el siguiente contenido:

{

  acknowledged: true,

  insertedId: ObjectId("63ee0b6c62851bdbc024818c")

}

Crear documento con ObjectId

ObjectId("") es la función que permite crear _id, el parametro debe ser un valor en hexadecimal con 24 dígitos.

db.mycollection.insertOne({_id: ObjectId("93ab3929cc0a2bcd12345678"), country: "COL"})

Algunas de las trampas que podemos encontrar en la certificación referente a la creación con ObjectId se produce cuando:

  • No especificamos que ObjectId pertenece al campo _id.
  • Debe tener exactamente 24 caracteres hexadecimales.
  • El valor de ObjectId no debe existir previamente.

Visualizar el resultado de los documentos creados anteriormente

Visualización de tres documentos

Creación de múltiples documentos

Ahora vamos a crear tres documentos a la vez. Esto es posible gracias a la función insertMany.

db.mycollection.insertMany([{country : "ALB"}, {country: "AFG"}, {country: "AND"}])

Y que nos va a proporcionar un documento con los ObjectId que se han creado. Como se puede apreciar, estos valor son secuenciales en este caso.

{

  acknowledged: true,

  insertedIds: {

    '0': ObjectId("63ee0f1262851bdbc024818d"),

    '1': ObjectId("63ee0f1262851bdbc024818e"),

    '2': ObjectId("63ee0f1262851bdbc024818f")

  }

}



Pregunta 1


Dado los dos siguientes documentos en una colección, indica cuales de esta lista podrían coexistir.

  • {_id: 1, txt: "just some text"},
  • {_id: 2, txt: "just some text"}

A. {_id: 0, txt: "just some text"}

B. {_id: 1, txt: "just some text"}

C. {_id: [4], txt: "just some text"}

D. {_id: 3, txt: "just some text"}

El único campo que nos importa de cara a la coexistencia es el identificador. En el caso de usar un numérico, este debe ser positivo (o 0) y no debe existir previamente. Tampoco son validos las cadenas de valor, como la de la opción C. Por tanto, A y D son las respuestas correctas ya que en B, el identificador 1, ya existe.

Conclusión

La creación de documentos es fundamental más importante de cara al desarrollo profesional que para la certificación. De todas formas, es fundamental que sepamos usar bien para crear colecciones para hacer pruebas. Es importante conocer que la sintaxis es insertOne o insertMany, y que no se permiten otras palabras, como "add", que se emplean para confundir durante el examen. También es importante conocer las normas básicas de ObjectId.

En este artículo hemos cubierto como realizar las acciones y visualizar a través de la consola y Compass. Para saber más sobre las funciones de búsqueda, debes acceder a la sección correspondiente en el curso para certificación de MongoDB.