Я не знаю, есть ли у меня ответ о том, как точно решить вашу проблему, но я собираюсь рекомендовать решение, которое, по моему мнению, значительно повышает уровень организации в вашем коде ...
(1) Прежде всего, каждая из этих схем должна быть экспортирована в виде отдельных моделей (и я бы порекомендовал их каждая в отдельных файлах)
(2) Во-вторых, в схемах subitems
и menuItems
создайте ссылки на сообщения и подэлементы.Если вы последуете первому предложению, которое я сделал, вы можете создать свою схему menuItems следующим образом:
menuItems.js
const menuItems = new mongoose.Schema({
title : String,
subitem: {
type: mongoose.Types.ObjectId,
ref: 'sub_items'
}
});
module.exports = mongoose.model("menu_items", menuItems);
Где sub_items
- это имявашей модели подэлементов, которые вы экспортировали.Используйте аналогичный формат с вашей моделью подэлементов, но я позволю вам сделать это, потому что я не хочу красть все веселье;)
(3) Теперь, когда этоссылки, когда вам нужно изменить подэлемент, на который ссылается menuItem, вам просто нужно обновить фактический подэлемент.Вам больше не нужно обновлять подэлемент с по объект menuItem, поскольку ссылка на подэлемент никогда не меняется!
Надеюсь, это поможет.Это должно быть гораздо более организованным для вас сейчас, и должно быть на НАМНОГО проще для обновления ваших подпунктов и подтемсов