所以我试图以收集/文档的方式思考,但没有遇到麻烦。
据我所知,以“方式”方式复制文件是绝对可以的。
例如我有“帖子”集合。它具有“text”,“likes”和“createdAt”属性。
{
text: "Hello world!",
likes: 12,
createdAt: "2014.11.01"
},
{
text: "I suck in Mongo",
likes: 25,
createdAt: "2014.11.01"
},
{
text: "I quit",
likes: 320,
createdAt: "2014.11.02"
},
{
text: "Lorem ipsum",
likes: 3,
createdAt: "2014.11.02"
}
然后我想输出这样的帖子:
<h1>2014.11.01 (37)</h1>
<ul>
<li>Hello world! (12)</li>
<li>I suck in Mongo (25)</li>
</ul>
<h1>2014.11.02 (323)</h1>
<ul>
<li>I quit (320)</li>
<li>Lorem ipsum (3)</li>
</ul>
正如您在H1标签中看到的那样,我将每个帖子“喜欢”计在一起。
有两种方法可以做到这一点。
根据我的理解,第一种方式并不是最好的方式。例如,我想在几个月,几年等时间做同样的逻辑。
行。让我们使用第二种方式。我将创建“天”集合。
{
date: "2014.11.01",
likes: 37,
posts: [
{ text: "Hello world!", likes: 12, createdAt: "2014.11.01" },
{ text: "I suck in Mongo", likes: 25, createdAt: "2014.11.01" }
]
},
{
date: "2014.11.02",
likes: 323,
posts: [
{ text: "I quit", likes: 320, createdAt: "2014.11.02" },
{ text: "Lorem ipsum", likes: 3, createdAt: "2014.11.02" }
]
}
大。现在我可以使用“days”集合作为我的“by date”html,我可以使用“posts”集合进行搜索功能,或者只打印普通列表中的所有帖子。
然后我可以创建“月”收集和“年”收集。
正如您所看到的,会有很多重复。相同的帖子存储在4个集合中(帖子,天,月,年)。但据我所知,这是一种蒙古方式。
当有人添加喜欢发布时,我需要更新4个集合。容易,只是递增计数。
但如果有人(例如管理员)在某些帖子中更改“喜欢”计数,我需要实现一些逻辑,以便在“天”,“月”和“年”中重新计算“喜欢”。
我可以看到有很多方法可以在那里犯错误。 Bug可以非常快速地同步我的数据,因此我需要重新计算“喜欢”计数。多年来收藏这是一个问题。在阵列中循环每个帖子...多久一次?如果有很多帖子?这似乎太复杂了。
也许我会走错路。也许我需要一些文献来更好地理解Mongo。
谢谢。