Bucket.get to fetch only desired elements

It depends on the size of your document really… Subdocument was built to address the use case where you have large documents and only need to work with a tiny subset of values inside of them. Not only read, but also mutate. Having to transfer all of the document in these cases would mean larger bandwidth usage and also higher latency.

I don’t have a general rule of thumb for choosing between kv get and subdoc, that would depend on your expected document size, expected subset to work with and also the performance of your network. But it should be pretty easy once you have an average size in mind to create such a document and measure both kv get and subdoc get of your subset.