Transparent encryption for Mongoose fields with built-in password migration