2011-02-08 32 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 

不是真的,因爲最好的解決方法我排序在應用程序,而不是數據庫引擎,但嘿..它的作品(在小名單)。