Mor*_*sda 1 database bigdata mongodb node.js
这是我的问题:我想创建一个网络,允许用户上传帖子并喜欢它们。
我想我可以将每个帖子存储在一个名为“帖子”的集合中,并且这样做没有问题。
但是我可以在哪里存储每个帖子的点赞以及相关数据(时间、用户来源等)?我无法在帖子文档中执行此操作,因为文档的最大大小为 16MB,想象一下我必须为每个帖子记录数千个点赞以及相关数据,我无法做到这一点。
我可以将每个帖子与一个集合相关联,其中包含文档,并且每个文档都是相似的。但老实说,如果可能的话,我不想创建数以百万计的收藏。
邮寄文件示例:
{_id: blabla, userfrom: {}, txt: "i am the post", time: {}, geo: {}, likes: {here i have to add as many likes as users clicks, and it can exceed 16MB}}
现在在“喜欢”中我可以引用一个集合,但这是我不想做的。
我读到了 mongodb 中的 gridstore 但我没有明白这一点。我可以将其用作大小趋于无限的文档吗?这样我就可以添加任意数量的记录?因此,使用网格商店我可以做类似的事情:
{_id: blabla, userfrom: {}, txt: "i am the post", time: {}, geo: {}, likes: {infinite records}}
有人可以帮我处理吗?谢谢
当你不想嵌入点赞时,你必须采用关系方式。
创建另一个“喜欢”集合,其中每个文档都有一个字段来说明它适用于哪个帖子。为了避免必须计算点赞集合中的所有条目来获取帖子的点赞数,您还应该将当前计数存储在帖子文档中。
关于 GridFS:我认为它不会对您有帮助。它不应该用于文档。其目的是在数据库中存储大型二进制文件。
| 归档时间: |
|
| 查看次数: |
1732 次 |
| 最近记录: |