Попытка обновить динамическое c поле в понедельник goose findAndUpdate, но безуспешно.
У меня есть следующая схема:
const schema = new Schema({
date: { type: String },
totalVisits: { type: Number, default: 0},
hourStats: Object
});
hourStat - это динамический c объект, созданный этой функцией:
createHourStatsObject: function () {
const hourObject = {};
for (let i = 0; i < 24; i++) {
hourObject[i] = {
newUsers: 1
}
}
return hourObject;
}
Я пытаюсь написать insertOrUpdate
выражение, без удачи. (MongoError: Обновление пути 'hourStats' приведет к конфликту в 'hourStats')
const currentHour = currentTime.getHours();
return DailyStatisticsCollecion.findOneAndUpdate({
date: helpers.getTodayDate()
},
{
$setOnInsert: {
date: helpers.getTodayDate(),
hourStats: helpers.createHourStatsObject(),
},
$inc: {
totalVisits: 1,
['hourStats.' + currentHour + '.newUsers']: 1
},
},
{
upsert: true,
setDefaultsOnInsert: true
},
)
Как иначе можно увеличить значение totalVisits
текущего часа hourStat
?