00:00 / 00:00

Fecha publicación: Jun 23, 2021

Mongo Playground

Cuando tenemos problemas con una consulta a veces nos puede costar encontrar la razón del fallo: podrían ser los datos, la query en sí, algún problema con el servidor... nos haría falta teneruna caja de arena para poder probar si las cosas funciona sin tener ruido adicional, además si esa caja de arena no depende de ningún servidor podemos enviársela a otros compañeros para que prueben, incluso publicarla en Stackoverflow.

En el mundo Front End esto es algo muy común, podemos encontrar herramientas online tales como: CodeSandbox, CodePen, jsFiddle...

Para Mongo, un proyecto muy interesante es: Mongo PlayGround

Manos a la obra

Nos vamos al sitio web de Mongo playground.

Si te fijas nos aparecen tres paneles:

  • En uno podemos añadir un JSON con una Base de datos.
  • En el otro podemos tirar una consulta.
  • En el tercero vemos el resultado de la consulta.

Imaginemos el siguiente caso: tengo una colección de películas y quiero crear una consulta que sólo me muestre el título de una película, vamos a reproducir esto en un playground.

  • En el panel de configuración copiamos unos datos de una colección de ejemplo simulando la entrada de una base de datos, en concreto una colección de películas.
[
  {
    "_id": "573a1390f29313caabcd4135",
    "title": "Blacksmith Scene",
    "imdb": {
      "rating": 6.2,
      "votes": 1189,
      "id": 5
    }
  },
  {
    "_id": "573a1390f29313caabcd446f",
    "title": "A Corner in Wheat",
    "imdb": {
      "rating": 6.6,
      "votes": 1375,
      "id": 832
    }
  }
]
  • Vamos al segundo panel y definimos una consulta, en este caso le indicamos que sólo queremos mostrar el campo título de la película.
db.collection.find({},
{
  title: 1
})
  • Le damos a run y vemos como la consulta se lanza, en el último panel aparecen los resultados:

Resultado, configuración de datos, query, resultados

  • Viendo los resultados nos surge una duda... ¿Cómo puedo quitar el campo _id? Voy a generar un enlace para compartir y así lo puedo añadir a una pregutna en StackOverflow o pasarselo a un compañero para que me eche un cable, todo esto sin tener que instalar, ni restaurar nada en su máquina.

Compartir playground vía enlace pulsando en botón share

Vamos a simular que soy el otro usuario, para ello tengo preparada una ventana de navegación en modo incógnito, me llega el enlace, veo los datos y consultas, la ejecuto, y me doy cuenta de lo que pasa, se le ha olvidado que tiene que indicar explicitamente que el campo _id no lo muestre, modifico la consulta:

db.collection.find({},
{
+  _id:0,
  title: 1,
})

Y si te fijas la url que tenía con el caso detallado ha desaparecido, ahora le puedo dar al botón de share y compartir el nuevo enlace con la persona que me preguntó.

Mi compañero, o algún alma caritativa de Stackoverflow me envía ese nuevo enlace y puedo ver la solución.

Esto no es sólo útil para pedir ayuda, también nos puede servir para probar consultas complejas con un conjunto de datos limitado.

¿Con ganas de aprender Backend?

En Lemoncode impartimos un Bootcamp Backend Online, centrado en stack node y stack .net, en él encontrarás todos los recursos necesarios: clases de los mejores profesionales del sector, tutorías en cuanto las necesites y ejercicios para desarrollar lo aprendido en los distintos módulos. Si quieres saber más puedes pinchar aquí para más información sobre este Bootcamp Backend.