2012-01-07 14 views
2

This articleは、MongoDBで投票システムを実装する方法を非常に明確に説明しています。MongoDBを使ったスケーラブルな投票システム

私には1つの追加要件があります。私は、表示されたオブジェクトに対して、特定のユーザーの投票が表示される必要があります。たとえば、私が20個のつぶやきを表示していて、ユーザーがそのつぶやきのうち3つに投票した場合、それらの投票を表示したいと思います。 (たとえば、上向きの緑の矢印を使用)

1つの解決策は、質問ごとに、投票者のセットをクライアントに送信することです。別の解決策は、彼が投じた票のセットをクライアントに送ることである。どちらのソリューションもスケーラブルなものとは思えません。助言がありますか?

+0

私はこのプロジェクトを数ヶ月前に実装しました。あなたのデータモデルをオリジナルの質問に少し記述しておきます。 –

答えて

1

(私はfreenodeの上のNode.jsにmartin_sunset午前)、おそらく我々は、チャットする必要があり、最終的には同様のものが必要。

投票票と投票者の配列が含まれているオブジェクトを取得したら、現在のユーザーのIDが有権者の配列内にあるかどうかを確認できます(ストーリー、ツイート、 )

それは意味がありますか?

+0

だから、すべてのオブジェクトのために私はすべての有権者にパイプを送るべきだと言っている。オブジェクトごとに100人の有権者がいる場合はどうなりますか?これは帯域幅の浪費のようです。 – Randomblue

+0

さて、もう1つの方法は、1つのクエリでツイートを取得し、次に現在のユーザーがいるツイートオブジェクトIDのセットを別のクエリにすることです。次に、あなたがつぶやきのセットを繰り返している間、現在のつぶやきのidがその人のつぶやきのセットに入っているかどうかを確認します。 –

+0

ええ、ありがとう。それは本質的に私がやったことです。 – Randomblue

0

完全な答えではありませんが、ルビー/モンゴイドの良い投票ライブラリ(高速!!!)へのリンクです。 node.js(おそらくmongoose)に簡単に移植可能でなければなりません。

https://github.com/vinova/voteable_mongo

私はこれはあなたのクライアント側を行うと何かある

+0

ありがとうございます。私はRubyについては何も知らないが、一見するだろう。 – Randomblue

関連する問題