node.js简单的连表查询

1,先写一个clazz班级类:

var mongoose=require('mongoose');

var  clazzschema=new mongoose.Schema({
    clazzname:String

});

mongoose.model('Clazz',clazzschema);

2:在写一个student类,关联clazz。

/**
 * 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,在访问链接里面调用。先存一个班级和一个学生;

 //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:然后找该学生对应的班级

Student.findClazzNameByStudentId('570ca4956747c9b41e2a5da3',function(err,student){
  if(err){
    console.log(err);
  }
  console.log(student.clazzid.clazzname);
});

 

转载于:https://my.oschina.net/u/2480757/blog/657439

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值