2016-11-15 3 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. Вам нужно передать поле ref. Проверьте эту ссылку. 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){ 

}); 

Mongoose будет внутренне добавить идентификатор v1 для вашего пациента Визиты Array. Вы можете позже их искать.

Patient.find().populate('visits').exec(function(err, res){ 
    // Here the P1 with have array of Visits 
}); 
Смежные вопросы