2012-01-07 35 views
2

This article非常清楚地解釋瞭如何使用MongoDB實現投票系統,並限制每個用戶和每個對象的一個​​投票。使用MongoDB的可擴展投票系統

我有一個額外的要求。我需要給定用戶的投票對所顯示的對象可見。例如,如果我顯示20條推文,並且用戶對3條推文投了贊成票,我希望這些投票可見。 (例如,使用綠色的向上箭頭。)

一種解決方案是向每個問題的客戶端發送一組選民。另一個解決方案是向客戶發送他投的一組投票。我沒有看到任何解決方案作爲一個可擴展的解決方案。有什麼建議麼?

+0

我剛剛在幾個月前實現了這個項目,在原始問題中描述了您的數據模型,我會幫您編寫查詢。 – 2012-01-09 18:02:56

回答

1

這是你會做客戶端。

一旦你有包含投票cound和選民陣列的對象,你可以檢查當前用戶的id是否在選民陣列內,而你迭代(故事,推文,你有什麼)

這有道理嗎?

+0

所以你說我應該把所有的選民都送給管道。如果每個對象有100個選民會怎麼樣?這似乎是對帶寬的浪費。 – Randomblue 2012-01-09 20:11:11

+0

好的,另一種方式是在一個查詢中獲取推文,然後再對當前用戶提供的一組推文對象id進行另一個查詢。然後,當你迭代推文集時,檢查當前推文的id是否在該人的推文集中。 – 2012-01-09 21:32:41

+0

是的,謝謝。這基本上就是我最終做的。 – Randomblue 2012-01-09 23:05:32

0

不是一個完整的答案,而是一個好的投票庫(快!!!)爲ruby/mongoid的鏈接。應該很容易移植到node.js,也許是貓鼬。

https://github.com/vinova/voteable_mongo

我需要類似的東西,最終,也許我們應該聊(我martin_sunset上的Node.js freenode上)

+0

謝謝。我對Ruby一無所知,但會看看。 – Randomblue 2012-01-07 19:10:47