场景
一个系统可以注册多个用户,每个用户可以发表文章。
两个Schema:
- User:用户
- Article:文章
其中一个用户可以包含多个文章
使用mongoose
在关系型数据库中,我们通常将这两个对象设计成一对多
的关系,一个User对应多个Article。而使用mongoose我们可以如此设计:
User:
{
username: {type: String, required: true, unique: true},// 用户名
password: {type: String, required: true}
}
Article:
{
title: {type: String, required: true},
content: {type: String, required: true},
created_time: {type: Date, default: Date.now},
_user: {
type: Schema.Types.ObjectId,
ref: 'User'
}
}
Article中的_user
字段是关键,使用ref
,将其与User
关联,那么使用mongoose查询Article时(populate
方法),就会将其关联的User一并查出。
Article.findById('articleId').populate('_user').exec(function(err, doc){
console.log(doc._user.username);
})
关键字: populate