Olá, Estou tentando realizar um mongoose.findByIdAndUpdate, porém com minha estrutura de documento de banco de dados, o resultado esperado não é obtido.
Primeiramente, aqui podemos notar um exemplo do documento que estou operando no mongo.
{
"_id" : ObjectId("5a1ffc750bedd605086a3788"),
"machineName" : "Testes",
"__v" : 0,
"status" : -1,
"requestData" : "",
"responseData" : {
"executionStatus" : 0,
"reportName" : "file.pdf"
}
}
Ao realizar a chamada
model.findByIdAndUpdate(id, {$set: data})
Sendo data
{
"status": 1,
"responseData":{
"paramns": "BLABLABLABLABA"
}
}
O status é atualizado corretamente (e se não existir é criado), porém os valores que já tinham em "responseData" são substituídos, seguindo o resultado abaixo.
{
"_id" : ObjectId("5a1ffc750bedd605086a3788"),
"machineName" : "Testes",
"__v" : 0,
"status" : 1,
"requestData" : "",
"responseData" : {
"paramns": "BLABLABLABLABA"
}
}
O que devo fazer para que haja um merge das informações que estão armazenadas com as que estão chegando? Conforme abaixo.
{
"_id" : ObjectId("5a1ffc750bedd605086a3788"),
"machineName" : "Testes",
"__v" : 0,
"status" : 1,
"requestData" : "",
"responseData" : {
"executionStatus" : 0,
"reportName" : "file.pdf",
"paramns": "BLABLABLABLABA"
}
}