Преминавате всички services
(включва всички други полета) към $set
и в резултат на това нулирате всички полета, вложени в services
. Опитайте да предадете само данни, които искате да актуализирате/добавите към вашия документ, като използвате точка.
документация за $set
казва
db.users.update({"name":"Fabien Rousseau"},{ $set: { "services.cas" : { "external_id" : "fabien.rousseau", "version" : 2 }}})