1

我不精通 MongoDB,我有一个简短的问题。问题 - 答案集合的最佳结构是什么。我应该它们分成不同的集合还是将答案保留为问题的属性?为您提供更多详细信息:

  1. 每个问题可以有多个答案
  2. 我不需要在答案中搜索
  3. 我将在问题中搜索
  4. 每个答案都会有userIdvotes当然还有answer属性
  5. 找到问题后,我将能够展开答案列表并为答案投票
  6. 问题也可以投票

它将类似于stackoverflow,但要简单得多。提前致谢。

4

1 回答 1

1

我会将它们保存在两个单独的集合中。正如您所说,您必须能够在问题集合中进行查询,因此创建问题集合,您只需显示针对特定选定问题的答案,但会包含您提到的一些特定字段,例如投票。例如,如果我们考虑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
        }
    ]
}
于 2013-08-30T08:59:39.520 回答