Мне нужно обновить массив «категорий», расположенный в схеме «меню» (модель). Я хотел бы изменить название определенной категории.
Схема "категория" - это просто схема, а не модель... этот код находится на сервере Nosejs
Вот мои схемы:
const menuSchema = new mongoose.Schema(
{
user: {
type: ObjectId,
ref: "User",
required: true,
},
restName: {
type: String,
trim: true,
required: true,
},
categories: [categorySchema],
},
{
timestamps: true,
}
)
Схема категории:
const categorySchema = new mongoose.Schema(
{
name: {
type: String,
required: true,
},
{
timestamps: true,
}
)
Я пытаюсь сделать это:
try {
let updateMenu = await Menu.updateOne(
{ _id: menuId, "categories.$.name": oldCatName },
{ $set: { "categories.$.name": newName } }
)
Просто не могу понять это в мангусте
Пожалуйста помоги
В вашей схеме menuSchema «категории» должны быть массивом objectId, относящимся к другой схеме, например
categories = [productId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'categorySchema',}
]
и после этого заполните категории, где вы хотите получить название категории. См. ссылку на документацию по мангусту на сайте populate