Tengo dos objetos relacionados, un menú y elementos de menú. Los menús no conocen sus elementos de menú. Los elementos del menú contienen una serie de referencias a los menús de los que forman parte. Mi esquema se ve así:
let MenuItemSchema = new Schema({ //other fields current_menus: [{ type: Schema.Types.ObjectId, ref: "Menu" }], });Estoy tratando de eliminar la referencia del menú de sus elementos de menú cuando elimino un objeto de menú. Este es mi código actual en mi enrutador de menú:
router.get("/delete/:id", async function (req, res) { let thisMenu = await Menu.findById(req.params.id).exec(); let allMenuItems = await thisMenu.menu_items; //Menu has a virtual function called "menu_items" that returns all the menu items that contain a reference to the current menu for (let menuItem of allMenuItems) { MenuItem.findByIdAndUpdate( menuItem._id, { $pull: { 'current_menus': { _id : thisMenu._id } } },function(err,model){ if(err){ console.log(err); } console.log(menuItem); }); } res.redirect("/menus/"); });Estoy tratando de extraer el menú con la identificación del menú que estoy eliminando de la matriz current_menus, pero en realidad no está actualizando el elemento del menú. ¿Estoy haciendo esto demasiado complicado? No estoy seguro de dónde me he equivocado, y otras estrategias que he encontrado en línea no han funcionado. ¡Cualquier consejo es apreciado!