元のデータにこれらが入っているとします。

usa1 = {1: 'Jay-Z', 2: 'Smap', 3: {'age': 20, 'tall': 144} }
data = {'A': 'okada', 'B': 'satou', 'C': 'Yamane', 'D': usa1}
db.student.insert(data)

一部を変更します

usa2 = {1: 'Jay-Z', 2: 'Smap', 3: {'age': 33, 'tall': 181} }
data = {'A': 'okada', 'B': 'satou', 'C': 'Yamane', 'D': usa2}
db.student.update(data)

上記ではエラーになってしまうので、一度空のstudent2insertしてstudentを削除してからstudentinsertするということをやっているんですが、他にスマートな方法はありませんか?

student2 = list(db.student.find())
db.student.remove()
db.student.insert(student2)