If one wants to aggregate (map / reduce) from multiple collections, instead of having to work with a unique change stream per collection, it would be better resource usage if we had one change stream subscription with specific filters.
We want this to be a nice type safe API.
Something in the lines of...
var subject = collection
.Observe(o => o
.Join(otherCollection, () => ... filter ...)
.Join(thirdCollection, () => ... filter ...)
.Combine((firstDoc, secondDoc, thirdDoc) => {
// Return new "reduced" type
})
);