MongoDb数据关系

我有一个:

  • MongoDB数据库
  • NodeJS上的REST API
  • Angular JS前端

现在我想创build数据库schma。 这将是:

故事 – 用户插入故事与描述。

问题 – 与故事的关系。 有一个故事可以有100多个问题。

答案 – 与问题的关系。 一个问题只能有一个答案。

我应该在MongoDb中select什么types的关系? 我需要更快的精神。 例如:

{ title: "Story title", descr: "Story descr", questions: [ {body: "Question body", user: "User} ] } 

由于每个故事的问题数量可能很大,并且假设在展示故事时不需要显示所有问题(特别是当显示故事列表时),并且由于有许多作者对一个文档有许多复杂性,我会build议以下简单的架构:

 stories { _id title description } questions { _id storyId user body answer { ... } } 

find一个故事的所有问题很简单( storyId应该有一个索引),find一个给定问题的故事是微不足道的。 我认为answer可以embedded。 尽pipe如此,还是要注意并发写入,也就是当别人编写问题时,别人写回答。 当使用一个embedded式文档而不是一个数组时,这比使用一个embedded式文档要容易得多,而并发作者的数量最多可能是两个,而不是几百个。

唯一稍微棘手的操作是删除一个需要您手动删除问题的故事,但这实际上只是一个调用。