Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CosmosDb Linq计数v3 SDK_Linq_Azure Cosmosdb_Azure Cosmosdb Sqlapi - Fatal编程技术网

CosmosDb Linq计数v3 SDK

CosmosDb Linq计数v3 SDK,linq,azure-cosmosdb,azure-cosmosdb-sqlapi,Linq,Azure Cosmosdb,Azure Cosmosdb Sqlapi,有人知道如何(在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(

有人知道如何(在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 q=con.GetItemLinqQueryable(false);
q=q,其中(d=>d.u type==type);
int count=wait q.CountAsync()///这是一个SDK内部方法,不起作用

您可以尝试使用以下代码(根据您的实际情况进行一些更改):

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

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

这不是从服务器中提取所有查询的文档并在本地进行计数吗?我希望在服务器上进行计数。向下投票。提取整个数据库进行计数是不正确的。它会带来大量的交通流量(因此会造成延误和收费)。当数据库大小增加时,它也会因容量而中断。该功能目前正在开发中,将在不久的将来发布,以获得回复。我了解到CosmosDb表示,在不久的将来,如果他们想发布一个新的API,这可能意味着在未来36个月内(或者更长的时间内)
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();
}