sql >> Base de Datos >  >> NoSQL >> MongoDB

Encontrar filas distintas en el alcance con mongoid

Si bien no es tan limpio como simplemente poder llamar a .distinct en un criterio, esta solución da los resultados esperados:

Person.find(Person.nearby(location_in_new_york, 1).distinct(:_id))

Sin embargo, esto no funciona (como está escrito) como un alcance, por lo que tendría que convertirlo en un método de clase. Personalmente, consideraría agregar un parche a mongoid para agregar un .unique método que hace lo que quiere (ya que MongoDB es responsable de devolver valores de campo en lugar de documentos cuando usa su operador distinto:http://www.mongodb.org/display/DOCS/Aggregation )