gpt4 book ai didi

mongodb - 使用 MongoDB 的简单投票系统

转载 作者:IT老高 更新时间:2023-10-28 13:35:38 26 4
gpt4 key购买 nike

快速提问我在 mongodb 中有一个文章列表,我希望用户能够对文章投赞成票或反对票。

我的第一种方法是在艺术收藏中设置两行分别称为 upvote 和 downvote 的数字,例如点赞:360否决票:102;

那么我需要通过求和来订购upvote-downvote 这将显示文章的总点赞数。

我的问题是在 mongoDB 中这是最好的方法,还是我最好用一个“投票”然后通过投票来订购它。

谢谢

最佳答案

当您这样做时,您不会跟踪哪个用户已经投票,因此用户可以多次投票。这肯定不符合你的利益。

出于这个原因,我会在每篇文章中添加一个数组“votes”,其中包含每个投票的对象,该对象唯一地标识出投票的用户:

votes: [ 
{ voter:"name or ID or IP address or some other unique identifier for the person who voted",
vote:-1 },
{ voter:"someone else",
vote:1 },
{ voter:"and someone entirely different",
vote:-1 }
]

当您在文章 ID 和 votes.voter 上创建唯一索引时,您已经确保没有人可以为一篇文章投票两次。

当您使用“-1”值表示否决票和“1”值表示赞成票时,您可以使用 $sum 聚合函数计算文章的总分(它还可以让您稍后轻松引入加权投票,当你喜欢的时候)。

关于mongodb - 使用 MongoDB 的简单投票系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12339233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com