喜欢在mongoDB

在这里我的问题:我想创build一个networking,允许用户上传post和喜欢他们。

我想我可以将每篇文章存储在一个名为“post”的集合中,而且我没有这个问题。

但我在哪里可以存储每个post与相关数据(时间,用户等)喜欢? 我不能这样做后文件,因为一个文件的最大大小是16MB,想象我将不得不logging每个post相关数据的数千喜欢我不能这样做。

我可以将每个post关联到一个集合,其中包括文档和每个文档是相似的。 但是,如果可能的话,我真的不想创造数百万和数百万的collections。

post文档示例:

{_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,但是我没有明白。 我可以使用它作为大小可以趋于无限的文件? 所以我可以添加尽可能多的logging,我想要的? 所以与网格商店我可以做一些事情:

{_id: blabla, userfrom: {}, txt: "i am the post", time: {}, geo: {}, likes: {infinite records}}

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

当你不想embedded喜欢,你必须去关系的方式。

创build另一个集合“喜欢”,其中每个文档有一个字段,说明它适用于哪个post。 为避免必须计算likes-collection中的所有条目以获取post的喜欢数量,还应该将当前数量存储在后期文档中。

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