CosmosDB 使用 CosmosClient 在 C# 中获取标量值

Len*_*y D 4 c# azure-cosmosdb

有谁知道如何使用 获取标量值Microsoft.Azure.Comos.CosmosClient

我浏览过网络,找不到任何示例。

我想做的就是能够执行这样的查询

SELECT value COUNT(c._id) 
FROM c 
WHERE c._ts > @timestamp
Run Code Online (Sandbox Code Playgroud)

CosmosClient或类上似乎没有任何函数Container来处理查询类型。

谢谢

404*_*404 8

您可以执行以下操作:

var container = client.GetContainer("test", "test");
var qry = container.GetItemQueryIterator<int>("SELECT VALUE COUNT(1) FROM c");
int count;
while (qry.HasMoreResults)
{
    count = (await qry.ReadNextAsync()).SingleOrDefault();
}
Run Code Online (Sandbox Code Playgroud)

它之所以有效,是因为您从 Cosmos REST API 返回一个 json 整数数组。SDKJsonConvert.Deserialize<int>对它执行一个(或类似的)操作,您知道其结果就是您要求的单个值。

可能有更好的方法,但我v3还没有看到任何标量方法。