2011-02-08 58 views
0

假设的顺序检索对象:Mongoid:在

提到= [ “2”, “1”, “3”]

未排序= User.where(:nickname.in = >提及).MAP

的输出不提供的数组中的排序匹配

输出是随机=> 3,1,2

我希望它按照原数组=> 2,1,3

回答

1

我有同样的问题,我解决这样的:

mentions=["foo","bar","baz"] 

ranked = User.where(:nickname.in => mentions).sort do |a, b| 
    mentions.index(a.nickname) <=> mentions.index(b.nickname) 
end 

不是真的,因为最好的解决方法我排序在应用程序,而不是数据库引擎,但嘿..它的作品(在小名单)。