1
我有兩個模式:貓鼬 - 如何限制填充()級別的深度?
var categorySchema = mongoose.Schema({
title: String,
blogs: [{ type: ObjectId, ref: 'Blog' }]
})
var blogSchema = mongoose.Schema({
title: String,
description: String,
category: [{ type: ObjectId, ref: 'Category' }],
created: {type: Number, default: new Date().getTime()}
})
var Category = mongoose.model('Category', categorySchema)
var Blog = mongoose.model('Blog', blogSchema)
它們交叉指:
- 博客對象包含
Category
對象(裁判)的陣列能夠得到這一切的博客相關的類別。 - 類別對象包含一個
Blog
對象(參考)的數組,以便能夠獲取此類別的所有博客。
問題是當我試圖獲得某個博客。我需要填充類陣列來獲得它的標題:
Blog
.findOne({_id: _._id})
.populate('category')
.exec(function (err, __) {
callback(err, __);
})
我得到...
{ title: 'My Blog',
description: 'description',,
_id: 51cb6bd845ba145e02000001,
__v: 0,
created: 1372285906662,
category:
[ { __v: 0,
_id: 51cb5ed6fd63867905000002,
priority: 3,
title: 'Music',
blogs: [Object] } ],
}
是的,我得到類別的冠軍,但我也得在博客某些對象 - 他們也人口稠密。但是博客對象可能包含很多子對象(帖子)並且我們還記得category
字段。那麼,類別字段中的所有對象都將遞歸填充,並且由於我在Blog和Category之間存在交叉鏈接,它將填充到循環中?
如何限制人口水平?我不希望Blog/category [n]/blogs: []
被填充,只能直接輸入category
字段,如title
。謝謝。