Node.js 基于MongoDB的可扩展投票系统

Node.js 基于MongoDB的可扩展投票系统,node.js,mongodb,voting-system,Node.js,Mongodb,Voting System,非常清楚地解释了如何使用MongoDB实现投票系统,以及如何限制每个用户和每个对象的一票 我有一个额外的要求。我需要给定用户的投票对显示的对象可见。例如,如果我显示了20条推文,并且用户对其中3条推文进行了投票,我希望这些投票是可见的。(例如,使用绿色向上箭头。) 一种解决方案是向客户发送每个问题的投票人集。另一个解决方案是向客户发送他所投的一组选票。我不认为这两种解决方案都是可扩展的。有什么建议吗?不是完整答案,而是一个指向ruby/mongoid良好投票库(fast!!!)的链接。应该很容易

非常清楚地解释了如何使用MongoDB实现投票系统,以及如何限制每个用户和每个对象的一票

我有一个额外的要求。我需要给定用户的投票对显示的对象可见。例如,如果我显示了20条推文,并且用户对其中3条推文进行了投票,我希望这些投票是可见的。(例如,使用绿色向上箭头。)


一种解决方案是向客户发送每个问题的投票人集。另一个解决方案是向客户发送他所投的一组选票。我不认为这两种解决方案都是可扩展的。有什么建议吗?

不是完整答案,而是一个指向ruby/mongoid良好投票库(fast!!!)的链接。应该很容易移植到node.js,也许是mongoose


我最终需要类似的东西,也许我们应该聊天(我是freenode上node.js上的martin_sunset)

这是客户端应该做的事情

一旦你拥有了包含投票委员会和投票人数组的对象,你就可以检查当前用户的id是否在投票人数组中,同时你可以迭代一组(故事、推特、你有什么)


这有意义吗?

谢谢。我对Ruby一窍不通,但会看一看。几个月前我刚刚为一个项目实现了这个,在最初的问题中稍微描述一下你的数据模型,我会帮助你编写查询。所以你是说,对于每个对象,我都应该发送所有投票者。如果每个对象有100个投票人呢?这看起来像是在浪费带宽。好吧,另一种方法是在一个查询中获取tweet,然后对当前用户的tweet对象id集进行另一个查询。然后,当您在tweets集合上迭代时,检查当前tweet的id是否在该人的tweets集合中。酷。问题是,最终个人推文的列表将比每条推文的投票者列表更长。这就是我提出第一种方法的原因。