2016-11-28 9 views
0

MongoDB用のmongooseを使用してデータモデルスキーマを作成しました。データモデルは調査のためのものであり、同じ調査は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はコミットしてくれてありがとう。しかし、それはすべての調査データを単一のコレクションに追加します。何千ものエンティアがありますが、データを取得するのに遅れや問題が生じることはありませんか? "Company A"に属するすべてのものを見つけるために非常に多くのエントリをフィルタリングする必要があります – Skywalker

+0

これは、mongoDbを使用している理由の1つで、新しいコレクションを作成するよりも1つの余分なフィールドが良いオプションです。 –

答えて

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答えがあなたに受け入れられたとマークするのに役立つならば。この回答にアクセスしている他の人は、 –

関連する問題