nonejs mongoose 多表关联

mongoose 多表关联

topic.js
const mongoose = require('mongoose');

const Schema = mongoose.Schema;

const TopicSchema = new Schema({
  title:{
    type:String
  }
})

module.exports = mongoose.model('Topic',TopicSchema)
article.js
// const topic = require('./models/topic')
const mongoose = require('mongoose');

const Schema = mongoose.Schema;

const ArtcleSchema = new Schema({
  plate_id:{        //板块id
    // 多表关联类型
    type: Schema.Types.ObjectId,
    // 需要关联的表名称
    ref : 'Topic'
  },
  title:{           //标题
    type:String,
    required:true
  },
  ····
})

module.exports = mongoose.model('Artcle',ArtcleSchema)
查询
// 详情
app.use('/topics/show',(req,res,next) => {
  // 关联查询
  Article
    .findById(req.query.id)
    .populate('plate_id')     //需要查询的属性
    .then(data => {
      console.log(data)
    })
    .catch(err => {
      console.log(err)
    })
})
效果

在这里插入图片描述

具体代码
github

https://github.com/laocaiq/node_mongodb_express_dome

码云

https://github.com/laocaiq/node_mongodb_express_dome

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值