I have a large document with many fields and I would just like to return 1-2 fields from the object to preserve throughput. Is this possible in cosmosDB or do I need to return the entire object everytime?
Doing a point read using ReadItemAsync() this is not possible. The only way to do this is with a query and include the properties you want in the SELECT statement.
That said, a query is unlikely to save a ton of RU/s because it still have to retrieve the item from the data store, then project the properties you want before returning in the response.
If you have a large document with lots of properties and asymmetric access patterns, meaning you only read or update a small number of properties with high concurrency or frequency, then the better solution is to shred the document into two with the high concurrency or frequncy properties in one document and the more static properties in another.
This will provide the most efficiency.