Egg中使用Mongoose实现数据库表的关联查询

Posted loaderman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Egg中使用Mongoose实现数据库表的关联查询相关的知识,希望对你有一定的参考价值。

model/user.js

module.exports = app => {

    const mongoose = app.mongoose;   /*引入建立连接的mongoose */
    const Schema = mongoose.Schema;
   

    //数据库表的映射
    const UserSchema = new Schema({
      username: { type: String  },
      password: { type: String  },
      status:{
        type:Number,
        default:1
      }

    });
   
    return mongoose.model(‘User‘, UserSchema,‘user‘);
}

modle/order.js

module.exports = app => {

    const mongoose = app.mongoose;   /*引入建立连接的mongoose */
    const Schema = mongoose.Schema;

    var OrderSchema=Schema({

        order_id:String,
        uid:Number,
        trade_no:String,
        all_price:Number,
        all_num:Number    
    })    
    
   return mongoose.model(‘Order‘,OrderSchema,‘order‘);  
    
   
}

controller/order.js

‘use strict‘;

const Controller = require(‘egg‘).Controller;

class OrderController extends Controller {
  async index() {
    
    //实现关联查询


    // var orderResult=await this.ctx.model.Order.find({});


    var orderResult=await this.ctx.model.Order.aggregate([

        {

            $lookup:{
                from:‘order_item‘,
                localField:‘order_id‘,
                foreignField:‘order_id‘,
                as:‘items‘
            }
        },
        {
            $match:{"all_price":{$gte:90}}
        }

    ]);


    this.ctx.body=orderResult;


  }
}

module.exports = OrderController;

 

以上是关于Egg中使用Mongoose实现数据库表的关联查询的主要内容,如果未能解决你的问题,请参考以下文章

Egg中使用egg-mongoose和常用的Mongoose 方法

Egg中使用egg-mongoose和常用的Mongoose 方法

Mongoose中关联查询populate的使用

Egg 中使用 Mongoose 以及 Egg 中的 model

19-3-18 mongoose 连表查询populate用法

egg-mongoose --- nodejs