Two exercises with data

Can you help me?

Exercise 1: Tomando en cuenta la siguiente colección: { a: 5, b: 5, c: null } { a: 3, b: null, c: 8 } { a: null, b: 3, c: 9 } { a: 1, b: 2, c: 3 } { a: 2, c: 5 } { a: 3, b: 2 } { a: 4 } { b: 2, c: 4 } { b: 2 } { c: 6 } Usando el operador $nor, escriba la consulta para la siguiente operación: mostrar todos los documentos donde exista el campo “a” y donde el campo “c” sea mayor o igual a 5.

Exercise 2: Tomando en cuenta la siguiente colección students: [ { “f_name” : “Zenny”, “sex” : “Female”, “class” : “VI”, “age” : 12, “grd_point” : 32.6342 }, { “f_name” : “Paul”, “sex” : “Male”, “class” : “VII”, “age” : 13, “grd_point” : 29.5904 }, { “f_name” : “Tom”, “sex” : “Male”, “class” : “VI”, “age” : 11, “grd_point” : 30.1257 }, { “f_name” : “Lassy”, “sex” : “Female”, “class” : “VIII”, “age” : 14, “grd_point” : 28.2514 }, { “f_name” : “Peter”, “sex” : “Male”, “class” : “VI”, “age” : 12, “grd_point” : 31.5201 } ] Escriba la consulta para obtener aquellos alumnos cuya edad sea par

Bienvenido @Mario_Orozco_Gonzalez ,
Resolver tus ejercicios no va a ayudarte demasiado. Pero te doy algunas ayudas.

Aunque no sepas cual es la consulta, tu sabes cual debe ser el output, entonces, puedes ir probando, y preguntar cuando estes atascado.

Si no tienes acceso a un terminal con mongodb, puedes usar este playground gratis.

Ahora, el primer ejercicio te ayudo, pero no estoy 100% seguro. Usar $nor es un poco tonto aqui, pero en fin. La logica seria…

  • Que a no sea falso
  • Que c no sea menor a 5

El primer paso es que comiences a leer la documentacion de $nor, MongoDB Docs.

db.collection.find({
  $nor: [
    {
      a: {
        $exists: false
      }
    },
    {
      c: {
        $lt: 5,
        $in: [ //este campo puedes eliminarlo, pero remueve los "null"
          null
        ]
      }
    }
  ]
})

Aqui puedes ver el resultado, aprende a usar bien esta pagina que va a ayudarte.

1 Like

Muchas gracias Santiago,

lo reviso.

El playground está genial!

1 Like

Por nada @Mario_Orozco_Gonzalez. La razon por la cual creo el ejercicio es un poco raro es que puede escribir la consulta de la siguiente manera (untested):

db.collection.find({
       a: {$exists: true},
       c: {
        $gte: 5,
        $nin: [null /* more states if wanted */ ]
      }
})
1 Like