Como a maioria das respostas sugere, você deve usar o notação de ponto para atualizar documentos incorporados e responder à sua pergunta acima, use o seguinte método auxiliar que aplica recursão para converter um determinado objeto em sua representação de notação de ponto:
function convertToDotNotation(obj, newObj={}, prefix="") {
for(let key in obj) {
if (typeof obj[key] === "object") {
convertToDotNotation(obj[key], newObj, prefix + key + ".");
} else {
newObj[prefix + key] = obj[key];
}
}
return newObj;
}
let params = {
address: {
city: {
location: {
street: "new street"
}
}
}
};
const dotNotated = convertToDotNotation(params);
console.log(JSON.stringify(dotNotated, null, 4));