JSON.stringify normalmente no elimina objetos vacíos, por lo que esto es específico de mangosta.
Recomiendo probar .toObject() o .toJSON()
http://mongoosejs.com/docs/api.html#document_Document-toObject
Se llamará a este durante .stringify, por lo que probablemente sea lo que está recortando los objetos vacíos.>http://mongoosejs.com/docs/api.html#document_Document-toJSON
Así que prueba esto primero:
JSON.stringify(obj.toObject());