2012-01-07 41 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