using strong typed languages with MongoDb can be painful. But for performance, you should only return the data required for the query. MongoDB has a strong query language that is json based, and you strong control of the shape of the JSON response.
if you are using strong typing with MongoDB you should define a model for each query response as using sparse objects can easily lead to bugs. you will probably use anonymous objects and an aggregation pipeline for updates and inserts.