mongodb数据库的集合关联

在学习mongodb数据库时遇到了集合关联,所以想写下记录起来

有时不同集合中的数据是有关联的,比如文章信息和用户信息存放在不同集合中,但文章是用户集合中的用户发表的,就需要集合关联。

示例代码

用户集合

const userSchema = new mongoose.Schema({
    username:{
        type: String,
        required: true,
        minlength: 2,
        maxlength: 20
    },
    email:{
        type: String,
        unique: true,
        required: true
    },
    password:{
        type: String,
        required: true
    },
    role:{
        type: String,
        required:true
    },
    state:{
        type: Number,
        default: 0
    }
});

文章集合中的author要关联用户集合,所以author中有个’ref‘字段,表示通过ObjectId关联User集合

const articleSchema = new mongoose.Schema({
	title: {
		type: String,
		maxlength: 20,
		minlength: 4,
		required: [true, '请填写文章标题']
	},
	author: {
		type: mongoose.Schema.Types.ObjectId,
		ref: 'User',
		required: [true, '请传递作者']
	},
	publishDate: {
		type: Date,
		default: Date.now
	},
	cover: {
		type: String,
		default: null
	},
	content: {
		type: String
	}
});

查找时则通过populate来查询则可

Article.find().populate('author').then(res=>{
    console.log(res)
})

最后希望自己能不断学习,坚持下去

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值