Поскольку я заметил, что глубокие вложенные массивы в документах не являются хорошей практикой, я хотел использовать references
в Mongoose с использованием ExpressJS.Сейчас я делаю CMS, где есть пункты меню, которые пользователь может публиковать.Каждый пункт меню может иметь подпункты, которые пользователь также может публиковать.Но я не знаю, как использовать ссылки, чтобы я мог ссылаться между основной коллекцией элементов и коллекцией подэлементов.
Это моя модель Mongoose Main_items:
var menuItems = new mongoose.Schema({
title : String,
subitem: {
type: mongoose.Types.ObjectId,
ref: 'sub_items'
}
}, {collection: 'menu_items'});
module.exports = mongoose.model("menu_items", menuItems);
И модель sub_items:
var subItems = new mongoose.Schema({
title: String,
});
module.exports = mongoose.model("sub_items", subItems);
Пост пунктов main_menu
postController.postMainItems = function(req,res,item){
var saveData = {
title : req.body.title
};
var data = new item(saveData);
saveToDB(data,res);
};
Iуже создан пост для пунктов главного меню.Это работает.Но теперь я хочу знать, как я могу разместить подэлементы, чтобы они имели прямую ссылку на каждый основной элемент