我是 NoSQL/MongoDB 世界的新手,所以我正在尝试几件事。
假设我想使用 MongoDB 创建一个博客。
我可以创建这样的博客文章:
{
Title: "My First Post",
Body: "Bla de bla de bla bli bla de bah"
Date: "07/07/2013" // or 06/07/2013 when using javascript date notation
}
然后我希望我的读者发表评论。我知道我的读者的一件事是他们非常投入。他们在我的博客文章中写了数千条评论。
第一个问题:嵌入评论 是个好主意吗?或者将它们存储在他们自己的集合中并参考博客帖子 ID 是否更好?
这是另一个例子。假设我想创建一个像网站这样的社交媒体,它有几种不同类型的对象(即:博客文章、视频、联系人),人们可以订阅这些对象,以便他们可以评论和阅读其他人的评论。
评论提要如下所示:
{
Type:[either blog post,video or contact]
Name:"Comments on this crazy video"
SubscribedUsers:[userid1,userid2,userid3...userid999]
Comments: {
{
Name:"Purple Dog",
Date: "07/07/2013 09:12:23",
Text: "Bla bla bla"
},
{
Name:"Shizzly Feather",
Date: "07/07/2013 09:23:08",
Text: "I agree with Purple Dog."
}
}
}
(也许符号有点不对,但我希望你明白我的意思)
问题二: 上面的例子对于这样的网站来说是个好主意吗?MongoDB 是一个很好的选择,还是我不应该将它用于这样的事情?(那我应该使用什么?)或者是否有另一种方法来实现相同的结果(最后,我想向用户显示一个聚合的提要,其中所有评论按日期 DESC 排序,用于他们订阅的提要)
我想要学习的(希望对其他人有用的)是何时选择 MongoDB/NoSQL 以及何时坚持使用 RDBMS。