使用单个数据模型架构创建具有不同名称的多个集合

时间:2016-11-28 10:44:31

标签: javascript node.js mongodb express mongoose

我使用mongoose为MongoDB创建了一个数据模型模式。数据模型用于调查,同一调查由4家公司的人员填写。让我们打电话给他们:

  1. 公司A
  2. 公司B
  3. 公司C
  4. 公司D
  5. 需要注意的重要一点是,我将为MongoDB中的每个公司(即公司A,公司B等)提供单独的集合,以便更容易地找到特定公司的数据。

    所有这4个集合将使用相同的数据模型模式,因为它们将收集完全相同的数据。 如何实现这一目标?

    数据模型架构:

    var mongoose = require('mongoose');
    var survey =  new mongoose.schema({
    
        sessionNo: {type: Number, required: true, min: 1, max: 6},
        firstName: {type: String, required: true},
        lastName: {type: String, required: true},
        role: {type: String, required: true},
        programme: {type: String, required: true},
    
        q1: {type: String, required: true},
        q2: {type: String, required: true},
        q3: {type: String, required: true},
        q4: {type: String, required: true},
        q5: {type: String, required: true}
    });
    mongoose.model('userSatisfactionSurvey', survey);
    

1 个答案:

答案 0 :(得分:0)

  

不是一个好的做法,如果架构相同只是添加公司字段和   不要过于复杂的东西

据说,所有你需要的就是下面的内容

var mongoose = require('mongoose');
var survey =  new mongoose.schema({

    sessionNo: {type: Number, required: true, min: 1, max: 6},
    firstName: {type: String, required: true},
    lastName: {type: String, required: true},
    role: {type: String, required: true},
    programme: {type: String, required: true},

    q1: {type: String, required: true},
    q2: {type: String, required: true},
    q3: {type: String, required: true},
    q4: {type: String, required: true},
    q5: {type: String, required: true}
});
var collectionOne = mongoose.model('userSatisfactionSurveyOne', survey);
var collectionTwo = mongoose.model('userSatisfactionSurveyTwo', survey);
var collectionThree = mongoose.model('userSatisfactionSurveyThree', survey);
var collectionFour = mongoose.model('userSatisfactionSurveyFour', survey);