在学习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)
})
最后希望自己能不断学习,坚持下去