我不精通 MongoDB,我有一个简短的问题。问题 - 答案集合的最佳结构是什么。我应该将它们分成不同的集合还是将答案保留为问题的属性?为您提供更多详细信息:
- 每个问题可以有多个答案
- 我不需要在答案中搜索
- 我将在问题中搜索
- 每个答案都会有
userId
,votes
当然还有answer
属性 - 找到问题后,我将能够展开答案列表并为答案投票
- 问题也可以投票
它将类似于stackoverflow,但要简单得多。提前致谢。
我不精通 MongoDB,我有一个简短的问题。问题 - 答案集合的最佳结构是什么。我应该将它们分成不同的集合还是将答案保留为问题的属性?为您提供更多详细信息:
userId
,votes
当然还有answer
属性它将类似于stackoverflow,但要简单得多。提前致谢。
我会将它们保存在两个单独的集合中。正如您所说,您必须能够在问题集合中进行查询,因此创建问题集合,您只需显示针对特定选定问题的答案,但会包含您提到的一些特定字段,例如投票。例如,如果我们考虑stackoverflow,您会看到问题:单击问题->然后您可以查询与该问题相关的答案的答案集合,也可以对答案进行评论,如果您不期望疯狂的话它们可以与答案一起保存在一个列表中。您可以将问题的答案保存在一个集合中,并带有参考和问题 ID 上的索引。
有点像他的:
问题:
{
"_id" : ObjectId("52205df3d6c893638bc2aa14"),
"q" : "What is hip?",
"v" : 1000
}
答案:
{
"_id" : ObjectId("52205e72d6c893638bc2aa15"),
"q_id" : ObjectId("52205df3d6c893638bc2aa14"),
"a" : "Tell me, tell me!",
"u" : "uid",
"v" : 153,
"c" : [
{
"c" : "Cool",
"u" : "uid",
"v" : 100
}
]
}