2011-02-08 9 views
0

と仮定のためにオブジェクトを取り出す:Mongoid:

に言及= [ "2"、 "1"、 "3"]

ランク付け= User.where(:nickname.in = >

出力がランダムである設けアレイ内の順序と一致しない

出力.MAP)に言及=> 3、1、2

01私はそれたい

私は同じ問題を抱えていた元の配列=> 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 

そうでもない以来、最もエレガントなソリューション私はアプリケーション内でソートしていますが、データベースエンジンではなく、ちょっと..それは動作します(小さなリストの)。