IIC2413 / Syllabus-2021-2

Contenido del curso Bases de datos del DCC PUC versión 2021-2
62 stars 44 forks source link

Duda sintaxis MongoDB en guía #286

Open nvaldiviesoo opened 2 years ago

nvaldiviesoo commented 2 years ago

Hola!

Me quedó una duda sobre la guía del miércoles pasado y ojalá me la puedan aclarar. Para la pregunta siguiente, puse dos consultas que según mi entender serían equivalentes Captura de Pantalla 2021-11-22 a la(s) 12 33 35 Sin embargo, dan resultados distintos (entiendo que la primera es correcta y me hace sentido). Lo que no me cuadra es por qué falla la segunda consulta. Hasta donde entiendo, hacer consultas separadas por coma es equivalente a un AND. Es decir, debería mostrar pokemones que tuvieran la habilidad Telepathy y al mismo tiempo Synchronize, pero en la segunda arroja además pokemones que tienen Synchronize, pero que no tienen Telepathy.

benjavicente commented 2 years ago

Hay un detalle sobre como funcionan los diccionarios en Python (y también en otros lenguajes con la misma estructura de datos) que hace que lo que estás escribiendo no es lo que se está haciendo finalmente :eyes:

Prueba corriendo lo siguiente, y verás que no es posible hacer lo segundo

print({"Abilities": "Telepathy", "Abilities": "Synchronize"}) #> {'Abilities': 'Synchronize'}
Explicación No es posible entregar 2 llaves con mismo nombre en una estructura como la de los diccionarios, ya que únicamente queda con el último par llave:valor definido. Entonces se tiene que utilizar otro formato, que sería el de llave:{como_unir: [valor1, valor2]}
nvaldiviesoo commented 2 years ago

Ahhh ya veo! Hace sentido que al final solo arroja los que tienen la habilidad Synchronize. Me queda claro. Muchas gracias!!