This article非常清楚地解釋瞭如何使用MongoDB實現投票系統,並限制每個用戶和每個對象的一個投票。使用MongoDB的可擴展投票系統
我有一個額外的要求。我需要給定用戶的投票對所顯示的對象可見。例如,如果我顯示20條推文,並且用戶對3條推文投了贊成票,我希望這些投票可見。 (例如,使用綠色的向上箭頭。)
一種解決方案是向每個問題的客戶端發送一組選民。另一個解決方案是向客戶發送他投的一組投票。我沒有看到任何解決方案作爲一個可擴展的解決方案。有什麼建議麼?
This article非常清楚地解釋瞭如何使用MongoDB實現投票系統,並限制每個用戶和每個對象的一個投票。使用MongoDB的可擴展投票系統
我有一個額外的要求。我需要給定用戶的投票對所顯示的對象可見。例如,如果我顯示20條推文,並且用戶對3條推文投了贊成票,我希望這些投票可見。 (例如,使用綠色的向上箭頭。)
一種解決方案是向每個問題的客戶端發送一組選民。另一個解決方案是向客戶發送他投的一組投票。我沒有看到任何解決方案作爲一個可擴展的解決方案。有什麼建議麼?
這是你會做客戶端。
一旦你有包含投票cound和選民陣列的對象,你可以檢查當前用戶的id是否在選民陣列內,而你迭代(故事,推文,你有什麼)
這有道理嗎?
所以你說我應該把所有的選民都送給管道。如果每個對象有100個選民會怎麼樣?這似乎是對帶寬的浪費。 – Randomblue 2012-01-09 20:11:11
好的,另一種方式是在一個查詢中獲取推文,然後再對當前用戶提供的一組推文對象id進行另一個查詢。然後,當你迭代推文集時,檢查當前推文的id是否在該人的推文集中。 – 2012-01-09 21:32:41
是的,謝謝。這基本上就是我最終做的。 – Randomblue 2012-01-09 23:05:32
不是一個完整的答案,而是一個好的投票庫(快!!!)爲ruby/mongoid的鏈接。應該很容易移植到node.js,也許是貓鼬。
https://github.com/vinova/voteable_mongo
我需要類似的東西,最終,也許我們應該聊(我martin_sunset上的Node.js freenode上)
謝謝。我對Ruby一無所知,但會看看。 – Randomblue 2012-01-07 19:10:47
我剛剛在幾個月前實現了這個項目,在原始問題中描述了您的數據模型,我會幫您編寫查詢。 – 2012-01-09 18:02:56