У меня есть такая схема:
const NoteClusterSchema = new Schema({
noteInfo: [{
title: String,
Description: String,
authors:[{
name: String, Id: String
}]
}],
idGroup: String //this is the group of the people that are working on the proyect
}, {timestamps:true});
Примером noteInfo
будет
noteInfo: [{
title: "Hello",
Description: "Hello World",
authors:[
{name: "Marcelo", id: "1234123123"},
{name: "Pancho", id: "12341345344"}
]
}]
Как я могу обновить, например, в массиве авторов специально имя "Марсело"? (предположим, что это так, если пользователь меняет свое имя. Я знаю, что в этом конкретном случае c я мог бы указать только _id, но в моей реальной схеме это не пользователь, который я хочу обновить)
Я думал о чем-то вроде этого:
await NoteClusterSchema.updateMany({idGroup: req.body.idGroup},
{
noteInfo: {$push: {authors: {name:
req.body.name}}}
})
Но, таким образом, он не будет знать, какое обновление всех массивов noteInfo, или он создаст новый authors
массив и изменение noteInfo: {$push:
$push: {noteInfo:
создаст только новый массив noteInfo
.
Итак, как я могу обновить этот указанный c объект в массиве внутри другого массива с помощью метода UpdateMany?