TResult може да бъде BsonDocument или конкретен клас, който представлява резултат от елемент за намаляване на типа.
Мисля, че за вашия пример можете да имате общ клас като този:
public class SimpleReduceResult<T>
{
public string Id { get; set; }
public T value { get; set; }
}
И вашата декларация за опции ще бъде
var options = new MapReduceOptions<BsonDocument, SimpleReduceResult<int>>();