He estado luchando durante unos días tratando de que las consultas funcionen. Por el momento mi modelo se ve así:
class Geojson include Mongoid::Document field :type, type: String, default: 'Point' field :coordinates, type: Array index({coordinates: "2dsphere"}, { bits: 12}) endLa siguiente consulta devuelve nil:
Geojson.find(:coordinates => {"$nearSphere" => [-70.1197340629727, 4.67071244438]})Estas son las instancias actuales en mi base de datos:
[#<Geojson _id: 61b7b21a9eb0c9ef0aa5626d, type: "Point", coordinates: [-74.13041168951031, 4.6638117]>, #<Geojson _id: 61b7b2619eb0c9ef0aa5626e, type: "Point", coordinates: [-74.1213041168951, 4.5638117]>]Puedo consultar casos similares en mongosh sin problemas, sin embargo, no estoy seguro de dónde está el error cuando lo hago directamente sobre rieles.
Finalmente logré hacerlo funcionar de la siguiente manera: (para un índice de esfera 2d)
Geojson.where(:coordinates => {"$nearSphere" => [long, lat]}).to_aDonde longitud y latitud son los parámetros recibidos.