Yes me, we use it to formalise documents and explicitly declare what data we store.
For total flexibility dictionary fields are best, they will handle any complex type eg: embedded dictionaries, lists or even other documents (automatically converting to a DBRef), however, you dont get validation, which may or may not be an issue based on your circumstances.