Mongodb 如何在Mongoid中按动态属性排序文档
我正在使用Mongoid存储一系列地理编码的列表。这些物品需要按价格和距离排序。每个列表的价格是数据库中的一个字段,而距离是一个动态属性,对于每个用户都是唯一的Mongodb 如何在Mongoid中按动态属性排序文档,mongodb,mongoid,Mongodb,Mongoid,我正在使用Mongoid存储一系列地理编码的列表。这些物品需要按价格和距离排序。每个列表的价格是数据库中的一个字段,而距离是一个动态属性,对于每个用户都是唯一的 class Listing include Mongoid::Document field :price def distance get_distance(current_user.location,coordinates) end end 如何按距离对这些文档进行排序?我尝试了@listing.desc
class Listing
include Mongoid::Document
field :price
def distance
get_distance(current_user.location,coordinates)
end
end
如何按距离对这些文档进行排序?我尝试了@listing.desc(:distance)
,但没有成功。简短(但没有帮助)的答案是:你不能
Mongoid确实有能力,但您可以更新控制器以执行以下操作:
@listings = Listing.near(current_user.location)
我相信它会按距离的顺序返回您的列表
另一方面,我注意到您的列表
模型指的是您的当前用户
对象,这有点打破了MVC架构,因为您的模型不应该知道关于当前会话的任何信息