У меня есть две схемы: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
(refs), чтобы иметь возможность получить все блоги этой категории.
Проблема в том, когда я пытаюсь получить определенный Блог. Мне нужно, чтобы заполнить массив категорий, чтобы получить его названия:
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
Поле. Итак, все объекты в поле категории будут заполнены рекурсивно, и поскольку у меня есть перекрестные ссылки между блоком и категорией, он будет заполняться в цикле?
Как ограничить уровень населения? Я не хочу, чтобы блог/категория [n]/blogs: []
был заполнен, только прямые category
поля, такие как title
. Благодарю.