CosmosDb Linq Count v3 SDK

CosmosDb Linq Count v3 SDK

有谁知道如何(在 Azure CosmosDB 的新 v3 SDK 中)从 LINQ IQueryable 异步获取计数?

        var con = col.Container();
        IQueryable<T> q = con.GetItemLinqQueryable<T>(false);
        q = q.Where(d => d._type == type);
        int count = await q.CountAsync()///this is an SDK internal method and does not work

你可以试试下面的代码(根据自己的实际情况做一些修改):

var con = col.Container();
IQueryable<T> q = con.GetItemLinqQueryable<T>(false);
var iterator = q.Where(d => d._type == type).ToFeedIterator();
int totalCount = 0;
while (iterator.HasMoreResults)
{
    var result = await iterator.ReadNextAsync();
    totalCount += result.Count();
}

3.2 版本的 SDK 添加了异步聚合功能。