【发布时间】:2013-08-20 08:35:42
【问题描述】:
我正在尝试制作一个类似于 Yahoo & Answer 或 StackOverflow 的网站(不同的类别,没有竞争),但我被困在这一点上,我非常感谢你们的任何指导,因为我非常MongoDB 新手。
顺便说一下,我在 Node.js 和 MongoDB 上使用 Express 框架。
问题是找到最有效的方法来构建用户和问题/答案数据的数据库。
目前,有一个 Questions 模型,其中每个类别都有一个文档。每个文档都包含问题本身、答案和其他信息,如下所述:
math{
OpenQuestions{
'x+2=5, whats x?' : {
asker: 'peter',
likes: 12,
answers: {
'x is 3' : {
answerer: 'john',
likes: 25
},
'x is 2' : {
answerer: 'MATHSUX',
likes: 0
}
}
}
}
ClosedQuestions{
//same as OpenQuestions
}
}
通过这种方式显示问题非常容易,因为我们可以根据对象的创建时间轻松检索问题并在主问题页面上相应地获取它们。
但是,如果用户想查看他提出的问题,我能想到的唯一方法就是遍历每个subject.OpenQuestions.QuestionItSelf.asker,并检查是否是用户本人,然后获取所有对象匹配此用户名,这将是一个巨大的计算。我敢肯定还有更好的方法,你们觉得呢?
【问题讨论】:
-
我认为可以肯定地说每个主题将拥有超过 16meg 的文档,所以不要嵌入
标签: javascript node.js mongodb mongoose database