Уменьшение карты можно рассматривать как избыточное количество для такого простого запроса.
Вы можете использовать свойство InlineResults:
docs.MapReduce(Query, map, reduce).InlineResults
, которое является перечислимым BsonDocument (в данном случае 1 документтолько) и получить первый результат.
Я бы, однако, предложил лучший способ найти максимальную ревизию, избегая использования карты уменьшить использование:
IMongoSortBy sort = SortBy.Descending("Revision");
IMongoQuery = Query.EQ("DocName", stFName);
BsonValue maxRev = docs.FindAs<BsonDocument>(q).SetFields(new string[] {"Revision"}).SetSortOrder(sort).SetLimit(1).GetFirstOrDefault()
if (maxRev !=null)
int revMax = maxRev.AsBsonDocument.GetValue("Revision").AsInt32; // <- this is the maximum revision
Если вы хотите, в конце концов, чтобыполучите максимальную ревизию для всех ваших документов, тогда mapreduce - хороший вызов.