Надежный способ добиться того, чего вы хотите, заключается в следующем:
public async Task<int> GetMaxId()
{
try
{
var maxValue = 0;
var option = new FeedOptions { EnableCrossPartitionQuery = true };
// SQL
var familiesSqlQuery = client.CreateDocumentQuery(cosmosConnector,
"SELECT c.id FROM c", option).AsDocumentQuery();
while(familiesSqlQuery.HasMoreResults)
{
var ids = await familiesSqlQuery.ExecuteNextAsync();
var maxIdInBatch = ids.Select(int.Parse).Max();
if(maxIdInBatch > maxValue)
{
maxValue = maxIdInBatch;
}
}
return maxValue;
}
catch
{
throw;
}
}
Причина, по которой это так, заключается в том, что ваши RU не будут исчерпаны за один вызов, потому что вы будете разбивать на страницы всерезультаты, достижения.Это займет больше времени, но будет надежным и точным.