kezhikezhi populate

populate方法可以通过一个Schema使用ref引用另一个Schema建立起表和表之间的关联,
并使用ID定义外键约束便于查询关联的表中相关内容。

var PostSchema = new Schema({
  title: {
    type: String,
    required: true
  },
  content: {
    type: String
  },
  create_by:{
    type: Schema.ObjectId,
    ref: 'MemberSchema'        
  },
  create_at: {
    type: Date,
    default: Date.now
  }
});

保存外键ID用于建立关系:

Post.create({
    title:'1111111111',
    content:'ffdddsfdsfdsfsd',
    create_by:ObjectId
},function(err,data){
    if(err){
        console.log(err)
    }else{
        console.dir(data);
          process.exit();
    }
})

使用populate方法查询:

Post.find({"_id":mongoose.Types.ObjectId("55c2d27dcf2730a80ab7407f")}).populate('create_by').exec(function(err,data){
if(err){
    console.log(err)
}else{
    console.dir(data);
         process.exit();
}
});