No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Consultas geoespaciales con $geoNear

13/21
Recursos

Aportes 2

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

El reto:
Dentro del operador 鈥済eoNear鈥 utilice query para filtrar lo que estos buscando.

[
  {
    $geoNear: {
      near: {
        type: "Point",
        //coordinates: [-73.95553399775919, 40.79964571639598],
        coordinates: [-155.98514, 19.61952]
      },
      distanceField: "distancia",
      maxDistance: 30000000,
      query: {neighborhood_overview:{$regex:"^[oO]+[cC]+[a-zA-Z]+",$options:'i'}},
      //includeLocs: "",
      //num: number,
      spherical: true,
    },
  },
  {
    $match:{
      beds:{$ne:0}
    }
  },
  {
    $project: {
      distancia: 1,
      suburb: "$address.suburb",
      government_area:"$address.government_area",
      precioxCama:{
        $divide:["$price", "$beds"]
      }
    }
  },
  {
    $group:{
      _id: {
        $cond:{
          if:{
            $lte:["$distancia", 2000]
          },
          then:"menos de 2K",
          else:"mas de 2k"
        } 
      },
      suburb:{"$first":"$suburb"},
      government_area: {"$first":"$government_area"},
      mediaxCama:{
        $avg: "$precioxCama"
      } 
    }
  }
]

#Resultado
_id: "mas de 2k"
suburb: ""
government_area: "Matosinhos e Le莽a da Palmeira"
mediaxCama: 21.25

_id: "menos de 2K"
suburb: "Kailua/Kona"
government_area: "North Kona"
mediaxCama: 55.00
use('sample_airbnb')

db.listingsAndReviews.aggregate([
  {
    $geoNear: {
      near: {
        type: "Point",
        coordinates: [
          -73.95552676483872,
          40.7994839486901
        ]
      },
      distanceField: "distancia",
      maxDistance: 30000,
      spherical: true
      }
},
  {
    $match: {
      beds: {
        $ne: 0
      }
    }
  },
  {
    $project: {
      _id:0,
      distancia: 1,
      precio : {
        $divide: ["$price", "$beds"]
    	}
    }
  },
  {
    $group: {
      _id: {
        $cond: {
          if:{
            $lte: ["$distancia", 2000]
          },
          then: "menos2K",
          else: "mas2K"
        }
      },
    	mediaPCama:{
        $avg: "$precio"
      }
    }
  }
  
])