mongoDB中的关联查询:populate | lean

关联查询:populate | lean

  1. 数据库得提供关联数据(新增clazzs集合,并且将students中引入该外键)

  2. 服务器:创建该新集合的模型

    // ./dao/clazzsModel.js
    const mongoose  = require("mongoose");
    //下面是生产model的代码:(借助于schema)
    const clazzsSchema = mongoose.Schema({
      name: String,
    },{versionKey:false});
    const clazzsModel = mongoose.model('clazzs', clazzsSchema);
    module.exports = clazzsModel;
    
  3. 学生模型建立了联系:

    const mongoose  = require("mongoose");
    require("./clazzsModel");//依赖clazzsModel
    const studentsSchema = mongoose.Schema({
      name: String,
      age: Number,
      gender: {type:String},
      className: {type:mongoose.Schema.Types.ObjectId,ref:"clazzs"},//联系的建立
      headPic:String,
      zz:[String]
    },{versionKey:false});
    const studentsModel = mongoose.model('students', studentsSchema);
    
    module.exports = studentsModel;
    
  4. 使用关联查询:

      const students = await studentsModel
            .find(condition ? condition : {})
            .populate("className",["_id","name"])//这里使用,其中参数代表了哪一个字段是外键,数组中的字段名是需要关联过来的字段
            .skip((page - 1) * limit)
            .limit(limit);
    
  5. 页面关于class的地方进行修改。

    1. info页面显示的地方
    2. update页面选择班级的地方(ajax渲染)
    3. add页面选择班级的地方(ajax渲染)

;

module.exports = studentsModel;


4. 使用关联查询:

```js
  const students = await studentsModel
        .find(condition ? condition : {})
        .populate("className",["_id","name"])//这里使用,其中参数代表了哪一个字段是外键,数组中的字段名是需要关联过来的字段
        .skip((page - 1) * limit)
        .limit(limit);
  1. 页面关于class的地方进行修改。

    1. info页面显示的地方
    2. update页面选择班级的地方(ajax渲染)
    3. add页面选择班级的地方(ajax渲染)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值