0

我有一个 Mongoid 模型,我想通过在模型和current_user实时之间计算的分数对结果进行排序。假设Thing有一个实例方法match_score

  def match_score(user) #can be user object too
    score = 100
    score -= 5 if user.min_price && !(price < user.min_price)
    score -= 10 if user.max_price && !(price > user.max_price)
    #... bunch of other factors...
    return [score, 0].max
  end

是否可以根据为特定用户返回的值对任何查询的结果进行排序?

4

1 回答 1

3

MongoDB 不支持排序中的任意表达式。基本上,您只能指定一个字段和一个方向(asc/desc)。

像您这样复杂的排序逻辑,唯一的方法就是在应用程序中进行。或者查看另一个数据存储。

于 2012-07-02T08:33:41.580 回答