2011-08-07 21 views
3

私は自分のユーザーコレクションからユーザーのリストを取得しようとしていますが、ランダムに10k +から20を取得する必要があります。最もクリーンで効果的な方法は何ですか?mongodbコレクションからランダムなレコードを取得する最も単純で効果的な方法は何ですか?

私は、ユーザーの更新を考えていた{ランダム:Math.random()}分ごと、その後、ランダムでソート....

これを行うためのクリーナー/より効果的な方法はありますか?

答えて

0

あなたは要素のリストを取得し、ちょうどそれはあなたのソリューションのように見えるオフセット

User.all.offset(rand(User.count).limit(20) 
+1

'・オフセットが遅いです。 –

1

はかなり良いです変更することができます。大きな値のためhttp://cookbook.mongodb.org/patterns/random-attribute/

+0

これは問題ありませんが、ページに記載されている注意事項に注意してください*「ランダム属性はそのキーの0と1の間に一様に分布しているとは見なされません。 * –

関連する問題