У меня есть коллекция, которая выглядит вот так. Каждый Объект в «днях» - это свой «дневной» документ. Более того, он не разбивается. Вот структура:
days: [
{
day: 'Sunday',
slots: [
{time: '12:00am', event: null}, {time: '1:00am', event: null}, {time: '2:00am', event: null}, {time: '3:00am', event: null},
{time: '4:00am', event: null}, {time: '5:00am', event: null}, {time: '6:00am', event: null}, {time: '7:00am', event: null},
{time: '8:00am', event: null}, {time: '9:00am', event: null}, {time: '10:00am', event: null}, {time: '11:00am', event: null},
{time: '12:00pm', event: null}, {time: '1:00pm', event: null}, {time: '2:00pm', event: null}, {time: '3:00pm', event: null},
{time: '4:00pm', event: null}, {time: '5:00pm', event: null}, {time: '6:00pm', event: null}, {time: '7:00pm', event: null},
{time: '8:00pm', event: null}, {time: '9:00pm', event: null}, {time: '10:00pm', event: null}, {time: '11:00pm', event: null},
]
},
{
day: 'Monday',
slots: [
{time: '12:00am', event: null}, {time: '1:00am', event: null}, {time: '2:00am', event: null}, {time: '3:00am', event: null},
{time: '4:00am', event: null}, {time: '5:00am', event: null}, {time: '6:00am', event: null}, {time: '7:00am', event: null},
{time: '8:00am', event: null}, {time: '9:00am', event: null}, {time: '10:00am', event: null}, {time: '11:00am', event: null},
{time: '12:00pm', event: null}, {time: '1:00pm', event: null}, {time: '2:00pm', event: null}, {time: '3:00pm', event: null},
{time: '4:00pm', event: null}, {time: '5:00pm', event: null}, {time: '6:00pm', event: null}, {time: '7:00pm', event: null},
{time: '8:00pm', event: null}, {time: '9:00pm', event: null}, {time: '10:00pm', event: null}, {time: '11:00pm', event: null},
]
},
{
day: 'Tuesday',
slots: [
{time: '12:00am', event: null}, {time: '1:00am', event: null}, {time: '2:00am', event: null}, {time: '3:00am', event: null},
{time: '4:00am', event: null}, {time: '5:00am', event: null}, {time: '6:00am', event: null}, {time: '7:00am', event: null},
{time: '8:00am', event: null}, {time: '9:00am', event: null}, {time: '10:00am', event: null}, {time: '11:00am', event: null},
{time: '12:00pm', event: null}, {time: '1:00pm', event: null}, {time: '2:00pm', event: null}, {time: '3:00pm', event: null},
{time: '4:00pm', event: null}, {time: '5:00pm', event: null}, {time: '6:00pm', event: null}, {time: '7:00pm', event: null},
{time: '8:00pm', event: null}, {time: '9:00pm', event: null}, {time: '10:00pm', event: null}, {time: '11:00pm', event: null},
]
},
{
day: 'Wednesday',
slots: [
{time: '12:00am', event: null}, {time: '1:00am', event: null}, {time: '2:00am', event: null}, {time: '3:00am', event: null},
{time: '4:00am', event: null}, {time: '5:00am', event: null}, {time: '6:00am', event: null}, {time: '7:00am', event: null},
{time: '8:00am', event: null}, {time: '9:00am', event: null}, {time: '10:00am', event: null}, {time: '11:00am', event: null},
{time: '12:00pm', event: null}, {time: '1:00pm', event: null}, {time: '2:00pm', event: null}, {time: '3:00pm', event: null},
{time: '4:00pm', event: null}, {time: '5:00pm', event: null}, {time: '6:00pm', event: null}, {time: '7:00pm', event: null},
{time: '8:00pm', event: null}, {time: '9:00pm', event: null}, {time: '10:00pm', event: null}, {time: '11:00pm', event: null},
]
},
{
day: 'Thursday',
slots: [
{time: '12:00am', event: null}, {time: '1:00am', event: null}, {time: '2:00am', event: null}, {time: '3:00am', event: null},
{time: '4:00am', event: null}, {time: '5:00am', event: null}, {time: '6:00am', event: null}, {time: '7:00am', event: null},
{time: '8:00am', event: null}, {time: '9:00am', event: null}, {time: '10:00am', event: null}, {time: '11:00am', event: null},
{time: '12:00pm', event: null}, {time: '1:00pm', event: null}, {time: '2:00pm', event: null}, {time: '3:00pm', event: null},
{time: '4:00pm', event: null}, {time: '5:00pm', event: null}, {time: '6:00pm', event: null}, {time: '7:00pm', event: null},
{time: '8:00pm', event: null}, {time: '9:00pm', event: null}, {time: '10:00pm', event: null}, {time: '11:00pm', event: null},
]
},
{
day: 'Friday',
slots: [
{time: '12:00am', event: null}, {time: '1:00am', event: null}, {time: '2:00am', event: null}, {time: '3:00am', event: null},
{time: '4:00am', event: null}, {time: '5:00am', event: null}, {time: '6:00am', event: null}, {time: '7:00am', event: null},
{time: '8:00am', event: null}, {time: '9:00am', event: null}, {time: '10:00am', event: null}, {time: '11:00am', event: null},
{time: '12:00pm', event: null}, {time: '1:00pm', event: null}, {time: '2:00pm', event: null}, {time: '3:00pm', event: null},
{time: '4:00pm', event: null}, {time: '5:00pm', event: null}, {time: '6:00pm', event: null}, {time: '7:00pm', event: null},
{time: '8:00pm', event: null}, {time: '9:00pm', event: null}, {time: '10:00pm', event: null}, {time: '11:00pm', event: null},
]
},
{
day: 'Saturday',
slots: [
{time: '12:00am', event: null}, {time: '1:00am', event: null}, {time: '2:00am', event: null}, {time: '3:00am', event: null},
{time: '4:00am', event: null}, {time: '5:00am', event: null}, {time: '6:00am', event: null}, {time: '7:00am', event: null},
{time: '8:00am', event: null}, {time: '9:00am', event: null}, {time: '10:00am', event: null}, {time: '11:00am', event: null},
{time: '12:00pm', event: null}, {time: '1:00pm', event: null}, {time: '2:00pm', event: null}, {time: '3:00pm', event: null},
{time: '4:00pm', event: null}, {time: '5:00pm', event: null}, {time: '6:00pm', event: null}, {time: '7:00pm', event: null},
{time: '8:00pm', event: null}, {time: '9:00pm', event: null}, {time: '10:00pm', event: null}, {time: '11:00pm', event: null},
]
}
]
Я хотел бы отредактировать поле события, которое вложено в этот json. Как я мог это сделать? У меня есть дневная модель. Но дальше этого не происходит. Я думал об использовании findOneAndUpdate, но я не могу понять, как развернуть, поэтому я нахожусь в подходящем временном интервале. Конечная точка имеет доступ к дню, времени и значению для установки события.

Использование оператора $ для установки вложенного объекта в массив
db.days.update(
{day: 'Monday', 'slots.time': '12:00am'}
{$set: {'slots.$.event': 'your new value'}}
);
Спасибо, сэр! Я ценю помощь