2016-11-15 8 views
-1

こんにちは私はmongodbを初めて使っています。私はそれを学んで、node.jsを使用している私の趣味プロジェクトの1つを実装しています。プロジェクト。mongooseとnode.jsのリファレンスドキュメントスキーマを作成する

私はすべての患者の詳細が最初の訪問時に登録されている病院を有しており、訪問ごとにその患者の訪問を参照のように追加する必要があります。

var patientschema=mongoose.schema(
        { 
         objectid:"12345678" 
         patientname: string, 
         patientDOB:Date, 
         Gender:string, 
         registrationfee:number, 
         visits:[{objectid:1234},{objectid:5678}] 
        }); 

とスキーマを訪問は私に適切なスキーマととのNode.jsアプリケーションからこれを達成するためのクエリを提供してください

var visitschema = mongoose.schema({ 
            objectid:"1234", 
            patientid:"12345678" 
            visitdate:date, 
            reason:string, 
            consultingdoctor:string 
            consultingfee:number      
            }); 

のようなものです。

+0

refrencesには実際の値を書きません。 refフィールドを渡す必要があります。このリンクを確認してください。 http://mongoosejs.com/docs/populate.html – anwerj

+0

サンプルアプリケーションが作成されていますか? – user2159740

答えて

0

2つのスキーマは、次のようになります。

var patientschema=mongoose.schema(
{ 
    patientname: string, 
    patientDOB:Date, 
    Gender:string, 
    registrationfee:number, 
    visits:[{ type: mongoose.Schema.Types.ObjectId, ref: 'Visit' }] 
}); 

var visitschema = mongoose.schema(
{ 
    patientid:{ type: mongoose.Schema.Types.ObjectId, ref: 'Patient' } 
    visitdate:date, 
    reason:string, 
    consultingdoctor:string 
    consultingfee:number      
}); 

var Visit = mongoose.model('Visit', visitschema); 
var Patient = mongoose.model('Patient', patientschema); 

今、私たちは、新たな患者登録を作成してみましょう:

var p1 = new Patient({name: 'Some Name', patientDOB : '2016-11-11', Gender : 'male', registrationfee : 123}); 

今、あなたは、この患者への訪問を追加することができます。

var v1 = new Visit({patientid : p1._id, ... Fill Other Fields here }); 

は今ときに、この訪問の保存、マングースは、内部的にあなたの患者訪問アレイにV1のIDを追加します、それは面白いでしょう

v1.save(function(err, res){ 

}); 

のthats。あなたは後でそれらを検索することができます。

Patient.find().populate('visits').exec(function(err, res){ 
    // Here the P1 with have array of Visits 
}); 
関連する問題