Вы обновляете документ по другому пути
Ваше обновление создает адрес первого уровня без работы с нужным вам полем.
На основе вашего req.body
db.users.update({}, {$set: req.body}
обновляет документ следующим образом
{
"_id" : ObjectId("5c2e4872e44cfe4170bc1565"),
"personal_info" : {
"first_name" : "John",
"address" : {
"city" : "New york",
"street" : "A"
}
},
"address" : {
"street" : "B"
}
}
, поскольку ваш адрес находится внутри personal_info
поле
Для того, чтобы делать то, что вы хотите, вы должны правильно указать root.
db.sample.update({}, {$set: {"personal_info.address.street" : "B"}})