나는 두 스키마가 :몽구스 (Mongoose) - 채우기의 깊이를 제한하는 방법은 무엇입니까?
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
개의 개체 (참조) 배열이 포함되어이 범주의 모든 블로그를 가져올 수 있습니다.
문제는 내가 특정 블로그를 얻으려고 할 때입니다.
{ title: 'My Blog',
description: 'description',,
_id: 51cb6bd845ba145e02000001,
__v: 0,
created: 1372285906662,
category:
[ { __v: 0,
_id: 51cb5ed6fd63867905000002,
priority: 3,
title: 'Music',
blogs: [Object] } ],
}
그래, 나는 카테고리 타이틀을 얻을 ... 내가 얻을
Blog
.findOne({_id: _._id})
.populate('category')
.exec(function (err, __) {
callback(err, __);
})
, 그러나 나는 또한 블로그에서 일부 개체를 얻을 수 - 그들은 또한 인구가 있었다 : 나는 제목의 얻을 카테고리의 배열을 채울 필요 . 그러나 블로그 객체에는 많은 서브 객체 (게시물) 이 포함될 수 있으며 category
필드을 기억합니다. 그래서, 범주 필드의 모든 개체는 반복적으로 채워질 것이며 블로그와 범주 사이에 교차 링크가 있으므로 루프로 채워지겠습니까?
인구 수준을 제한하는 방법은 무엇입니까? 블로그/카테고리 [n]/blogs: []
을 입력하고 싶지 않으므로 title
과 같은 category
필드 만 직접 입력하면됩니다. 감사. mongoose docs에서