のテーブルがあります~8000 quiz questions
。それらはに分かれてい25 categories
ます。各カテゴリには、クイズを生成するmax_questions
ために選択する必要がある質問の数を示す属性があります。randomly
例えば
Category 1 -> 2 questions
Category 2 -> 3 questions
Category 3 -> 1 question
私は解決策を思いつきましたが、私は約かかります。実行するのに 2 秒。
r.table('categories').pluck('id', 'max_questions').orderBy('id').run(conn, function(err, cursor) {
if(err) return next(new Error(err.msg));
cursor.toArray(function(err, categories) {
if(err) return next(new Error(err.msg));
async.concat(categories, function(category, callback) {
r.table('questions').filter({category_id: category.id }).sample(category.max_questions).run(conn, callback);
}, function(err, questions) {
if(err) return next(new Error(err.msg));
res.json(questions);
});
});
});
RethinkDB を使用して質問をすばやく取得する方法はありますか? 1 つのクイズで 25 回のリクエストと 25 回の呼び出し.sample()
は、私にはよく聞こえません。
あなたの助けに本当に感謝します!