I have a scenario where I will be displaying widgets in my app which exist as a 1 to 1 user enrolment. These widgets are linked 1 to 1 with learning material. If I reference the material with a lookup A sharding becomes impossible and B the searches on these widgets will be slow (an alternative would be populate but that seems less efficient with larger sets).
Alternatively I can embed the learning cover image / description and control details into the widget documents which will speed up the search but slow down the generation of the doucment and result in lots of redundancy and the need to keep this nested data from being stale. This also seems poor. Are these really the only two routes to go or am I missing something?