Mongo コレクションから 10 個のランダムなアイテムのセットを取得する最善の方法を見つけようとしています。私の計画は、一連の Mongo ID を Redis に保存し、Redis SRANDMEMBER コマンドを使用して 10 個のランダム ID を取得し、Mongo コレクションから取得することです。
ノードを使用しているため、SRANDMEMBER 10 を使用できません。これは、ノードの「redis」パッケージがオプションの 2 番目のパラメーターを受け入れないためです。
私が本当につまずいているのは、これを非同期に適した方法で行う方法です。Waterfall や While など、ノード非同期ライブラリによって提供されるいくつかのツールを使用してみましたが、Redis 呼び出しは常にデータよりも遅くなります。
編集#2:
以下のヘルプに応じて、関数を次のように絞り込みました。
client.send_command("SRANDMEMBER", ["album_id_set", "10"], function(err, results) {
if (err) console.log('Redis error: ' + err);
Album.find({
'_id' : { $in: results }
}, function(err, result){
if (err) console.log('Mongo error: ' + err);
response.json(result);
});
});