2016-11-28 98 views
0

我已經使用mongoose爲MongoDB創建了一個數據模型模式。數據模型用於調查,同一項調查由4家公司的人員填寫。讓我們稱之爲:使用單個數據模型模式創建具有不同名稱的多個集合

  1. A公司
  2. B公司
  3. C公司
  4. 公司d

需要注意的重要一點是,我將有一個單獨的集合爲每個公司內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); 
+0

不是一個好習慣,如果模式相同,只需添加'company'字段並且不要過於複雜的東西 –

+0

@RohitHazra感謝提交。但是,這會將所有調查數據添加到一個集合中。將會有成千上萬的實體,這不會導致延遲和「獲取」數據的問題嗎?它必須通過篩選這麼多條目才能找到屬於「A公司」的所有條目。 – Skywalker

+0

這就是爲什麼您使用mongoDb的原因,有一個額外的字段大多是一個不錯的選擇,而不是創建一個新的集合。 –

回答

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); 
+0

@Skywalker如果答案幫助您將其標記爲已接受。所以其他訪問這個答案的人會知道它的工作 –

相關問題