Im Vergleich zu einer vorherigen Antwort, die einfach alles in das Stammverzeichnis des Dokuments einfügt, ist hier ein korrekter Weg, dies zu tun mit Positionsoperator :
db.t.update({
"_id" : "2",
"workspace.name" : "3"
},{
$push: {
'workspace.$.widgets' : {
id: "2",
blabla: "blabla"
}
}
});