1
私はタグの配列を含む文書の束を持っている:を計算し、最も一般的な配列要素
{ tags: ["tag1", "tag2", "tag3"] }
私が何をしたいのですが、何がすべての文書の中で使用され、トップ10の最も一般的なタグを計算することです。しかし、私はそれを行うには、このかなり面倒な方法であること(クエリの最適化の私の限られた知識で)「感じる」
r.db("database").table("table").concatMap(function(doc) {
return doc("tags")
}).coerceTo("array").group(function(entry) {
return entry
}).count().ungroup().orderBy(r.desc("reduction").limit(10).map(function(doc) {
return doc("group")
})
:いくつかの試行錯誤の後、私は、次の解決策を作ってみました。インデックスを適切に使用して効率的なアプローチを提案する人はいますか?
ありがとう!マルチインデックスをうまく利用。あなたの答えに '.orderBy(r.desc(" reduction "))'がありません。実際に 'slice(-10)'と 'limit(10)'にはパフォーマンス上の違いがありますか? – GlurG
ああ、ええ、私は 'orderBy'を忘れました。私は 'r.desc'を中止しました。 'slice(-10)'は最初の10個の要素の代わりに最後の10個の要素を取ります。ここで配列上で操作しているので、効率的でなければなりません。 – mlucy