如何在 MongoDB/Mongoose 中正确地 link 集合

How to correctly link collections in MongoDB/Mongoose

我目前正在开发一个问题库,我想 link 将测试结果发送到用户帐户。我是 noSQL 数据库结构的新手,我只是想听听专家关于 link 向用户提供结果的最佳方式的意见。

我是否应该让 userSchema 引用用户特定的测试分数集合?或者只是 link 使用 "ref:"?

键入全球考试成绩集合

您应该将需要的数据视为 JSON,将其他实体视为属性和 属性 数组。

希望这段代码对您有所帮助:

问题:

{
   "title" : "It's a title of question",
   "otherProperty" : Boolean,
   "created_by: {
      "name": "User Who Created Question",
      "otherProperty":0
   },
   "answers": [
      {"text":"Answer content", 
       "created_by": {
          "name":"User Who Answered Question
        }, 
       "otherProperty":False
      },
      {"text":"Answer content", 
       "created_by": {
          "name":"User Who Answered Question
        }, 
       "otherProperty":False
      },
      {"text":"Answer content", 
       "created_by": {
          "name":"User Who Answered Question
        }, 
       "otherProperty":False
      }
   ]
}

在代码方面,您应该阅读 mongoose 文档,但通常会使用 Ref 键。像这样:

var Schema = mongoose.Schema;

var QuestionSchema = new Schema({
   title: {
      type: String,
      required: true
   },
   answers: [{
      type: Schema.Types.ObjectId,
      ref: 'Answer'
   }]
})

var Answer = new Schema({
   text: {
      type: String,
      required: true
   },
   created_by: {
      type: Schema.Types.ObjectId,
      ref: 'User'
   }
})

希望对你有所帮助

更新:我刚刚更新了第一个示例的示例代码。