TResult può essere un BsonDocument o una classe specifica che rappresenta il risultato del tipo reduce item.
Penso che per il tuo esempio potresti avere una classe generica come questa:
public class SimpleReduceResult<T>
{
public string Id { get; set; }
public T value { get; set; }
}
E la tua dichiarazione di opzioni sarebbe
var options = new MapReduceOptions<BsonDocument, SimpleReduceResult<int>>();