我正在尝试建立一个类似于 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
,并检查是否是用户本人,然后获取该用户名的所有对象匹配,这将是一个巨大的计算. 我相信还有更好的方法,你们觉得呢?