1,先写一个clazz班级类:c++
var mongoose=require('mongoose'); var clazzschema=new mongoose.Schema({ clazzname:String }); mongoose.model('Clazz',clazzschema);
2:在写一个student类,关联clazz。mongoose
/** * Created by 1 on 2016/4/12. */ var mongoose=require('mongoose'); var studentschema=new mongoose.Schema({ studentname:String, //关联clazz clazzid:{ type:mongoose.Schema.ObjectId, ref:'Clazz' } }); //写一个静态类;查询该学生的班级 studentschema.statics={ findClazzNameByStudentId:function(studentid,callback){ return this.findOne({_id:studentid}) .populate('clazzid') .exec(callback); } } mongoose.model('Student',studentschema);
3,在访问连接里面调用。先存一个班级和一个学生;ui
//var clazz=new Clazz({ // clazzname:'c++' //}); // //console.log(clazz); // // //clazz.save(function(err){ // if(err){ // console.log(err); // } // var student=new Student({ // studentname:'aaaa', // clazzid:clazz._id // }); // console.log(student); // student.save(function(err){ // if(err){ // console.log(err); // } // console.log('success'); // }); //});
4:而后找该学生对应的班级this
Student.findClazzNameByStudentId('570ca4956747c9b41e2a5da3',function(err,student){ if(err){ console.log(err); } console.log(student.clazzid.clazzname); });