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