gpt4 book ai didi

node.js - 在 mongoDB 中点赞

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:49 25 4
gpt4 key购买 nike

这是我的问题:我想创建一个允许用户上传帖子和点赞的网络。

我想我可以将每个帖子存储在一个名为“帖子”的集合中,而且我这样做没有问题。

但是我可以在哪里存储每个帖子的点赞数和相关数据(时间、用户来源等)?我不能在帖子文档中执行此操作,因为文档的最大大小为 16MB,并且想象我必须为每个帖子记录数千个喜欢和相关数据,我无法做到这一点。

我可以将每个帖子与一个集合相关联,该集合包括文档并且每个文档都是相似的。但老实说,如果可能的话,我宁愿不要创建数百万个收藏。

帖子文档示例:

{_id: blabla, userfrom: {}, txt: "i am the post", time: {}, geo: {}, likes: {这里我必须添加用户点击的点赞数,并且可以超过 16MB}}

现在在“喜欢”中我可以引用一个集合,但这是我不想做的。

我在 mongodb 中阅读了有关 gridstore 的内容,但我没有理解要点。我可以将它用作大小可以无限大的文档吗?这样我就可以添加任意数量的记录?所以对于网格存储,我可以做类似的事情:

{_id: blabla, userfrom: {}, txt: "我是帖子", time: {}, geo: {}, likes: {infinite records}}

有人可以帮我处理一下吗?谢谢

最佳答案

当您不想嵌入点赞时,您必须采用关系方式。

创建另一个集合“likes”,其中每个文档都有一个字段,说明它适用于哪个帖子。为了避免必须计算点赞集合中的所有条目来获取帖子的点赞次数,您还应该将当前计数存储在后文档中。

关于 GridFS:我认为它不会对您有所帮助。它不应该用于文档。其目的是在数据库中存储大型二进制文件。

关于node.js - 在 mongoDB 中点赞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21216718/

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