Я пытаюсь обновить объект внутри документа
Документ: Кошки
{
"_id": "5e5cb512e90bd40017385305",
"type": "cat"
"history": [
{
"id": "randomID",
"content": "xyz",
},
{
"id": "randomID2",
"content": "abc",
}
]
}
Код для выбора и обновления объекта внутри массива истории:
const editHistory = async (_, { input }, ctx) => {
let query = { _id: input.catId, "history.id": input.historyId };
let update = { $set: { "history.$": input.history } };
let options = {
new: true,
fields: { history: { $elemMatch: { id: "randomID" } } }
};
let cat = await ctx.models.cats.findOneAndUpdate(query, update, options);
return cat;
};
Входные данные имеют следующие значения
input: {
catId: "5e5cb512e90bd40017385305",
historyId: "randomID",
history: {
id: "randomID",
content: "new content"
}}
Я пытался использовать проекцию, я использовал select, изменил его на поле, найденное в документации mon goose. Я все еще не мог обновить значения. Что-то не так с тем, как я запрашиваю или выбираю подполе.