2016-11-15 72 views
-1

嗨,我是新來的mongodb我正在學習它,併爲我的一個使用node.js的愛好項目實現,請幫助我構建一個模式並進行下面的查詢項目。爲mongoose和node.js創建一個參考文檔模式

我有一家醫院,他的每一位患者的詳細信息都是在他第一次訪問時註冊的,每次訪問時我都需要通過參考來爲該患者添加訪問。

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

和訪問模式是像

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

請提供給我一個合適的模式和與查詢從node.js的應用程序實現這一點。

+0

你不寫在refrences的實際值。您需要傳遞參考字段。檢查這個鏈接。 http://mongoosejs.com/docs/populate.html – anwerj

+0

是否有任何示例或示例應用程序創建? – user2159740

回答

0

在你的情況下,兩個模式應該看起來像這樣。

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.save(function(err, res){ 

}); 

貓鼬將V1的ID內部追加到病人就診陣列。您稍後可以通過搜索它們。

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