2016-05-02 10 views
1

平均スタックを使用してハイブリッドアプリを作成しています.MongooseでDBを作成するためにnosqlを使用しています。私のDBは「ドナー」と「bloodGroup」の2つのテーブルで構成されています。次のように マイ「bloodGroup」スキーマは、次のようmongooseの1対多の関係

module.exports = function(mongoose) { 
var Schema = mongoose.Schema; 

    /* bloodGroup Schema */ 
    var bloodGroupSchema = new Schema({ 
    name: { type: String, required: true } 
    }); 
} 

マイ「Donor'schemaである:

/* Donor Schema */ 
var DonorSchema = new Schema({ 
Name: { type: String, required: true }, 
DOB: { type: Date, required: true, trim: true }, 
Sex: { type: String }, 
BloodGroupID: { type: Schema.Types.ObjectId, ref: 'BloodGroup', required: true }, 
ContactNo: { type: String, required: true }, 
LocationId: { type: Schema.Types.ObjectId, ref: 'Location', required:true }, 
EmailId: { type: String, required: true }, 
Password: { type: String, required: true } 
}); 

多くのドナーが単一血液次いでBloodGroupオブジェクトIDエラーが報告されているを参照するとき。この問題を解決するには?

+0

あなたは質問自体に誤りを共有していただけますか? – Dineshaws

答えて

-1

Mongoはリレーショナルデータベースではありません。mongDBには1対多の関係は存在しません。質問はかなり混乱しますが、タイトルの後にドンナーをBloodGroupに埋め込むか、参照する固有のIdフィールドを作成して2つのクエリを実行する必要があります。

+0

あなたは間違っています。 http://blog.mongodb.org/post/87200945828/6-rules-of-thumb-for-mongodb-schema-design-part-1を読むことをお勧めします – Anil

1

あなたはドキュメンテーションのために、このリンクを参照することができます:http://mongoosejs.com/docs/populate.html

の保存参考文献

/* Donor Schema */ 
    var DonorSchema = new Schema({ 
    _id : {type: Number}, 
    Name: { type: String, required: true }, 
    DOB: { type: Date, required: true, trim: true }, 
    Sex: { type: String }, 
    BloodGroupID: { type: Schema.Types.ObjectId, ref: 'BloodGroup', required: true }, 
    ContactNo: { type: String, required: true }, 
    LocationId: { type: Schema.Types.ObjectId, ref: 'Location', required:true }, 
    EmailId: { type: String, required: true }, 
    Password: { type: String, required: true } 
    }); 


    /* bloodGroup Schema */ 
    var bloodGroupSchema = new Schema({ 
     _bid :{ type: Number, ref: 'Donor' }, 
     name: { type: String, required: true } 
    }); 


    module.exports = mongoose.model('Donor', DonorSchema); 
    module.exports = mongoose.model('Blood', bloodGroupSchema); 


    var vidya = new Donor({ _id: 0, name: 'Vidya', sex: 'F' }); 
     vidya.save(function (err) { 
      if (err) return handleError(err); 

      var blood = new BloodGroup({ 
      name: 'B+', 
      _bid: vidya._id // assign the _id from the Donor 
      }); 

      blood.save(function (err) { 
      if (err) return handleError(err); 
      // thats it! 
      }); 
     });