場景
一個系統(tǒng)可以注冊多個用戶,每個用戶可以發(fā)表文章缓升。
兩個Schema:
- User:用戶
- Article:文章
其中一個用戶可以包含多個文章
使用mongoose
在關(guān)系型數(shù)據(jù)庫中帅矗,我們通常將這兩個對象設(shè)計(jì)成一對多
的關(guān)系绊汹,一個User對應(yīng)多個Article永票。而使用mongoose我們可以如此設(shè)計(jì):
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
字段是關(guān)鍵搂捧,使用ref
驮俗,將其與User
關(guān)聯(lián),那么使用mongoose查詢Article時(populate
方法)允跑,就會將其關(guān)聯(lián)的User一并查出王凑。
Article.findById('articleId').populate('_user').exec(function(err, doc){
console.log(doc._user.username);
})
關(guān)鍵字: populate