CosmosDB 使用 CosmosClient 在 C# 中获取标量值
CosmosDB Get Scalar Value in C# using CosmosClient
有谁知道如何使用 Microsoft.Azure.Comos.CosmosClient
获取标量值?
我浏览了网络,找不到任何示例。
我想要做的就是能够执行这样的查询
SELECT value COUNT(c._id)
FROM c
WHERE c._ts > @timestamp
CosmosClient
或 Container
类 似乎都没有任何函数来处理查询类型。
谢谢
您可以执行以下操作:
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();
}
之所以有效,是因为您从 Cosmos REST API 获得了一个 json 整数数组。 SDK 对其执行 JsonConvert.Deserialize<int>
(或类似),您知道其结果是您要求的单个值。
可能有更好的方法,但我也没有在v3
中看到任何标量方法。
var count = await _CosmosClient.GetCosmosContainer(CollectionName).
GetItemLinqQueryable<int>
().CountAsync();
return count;
这就是我对 return 计数所做的。但是,我仍然想知道幕后是否有任何循环。我希望我有一个可以 return 计数的方法。
任何人都可以解释一下我的解决方案与私密的解决方案之间的区别 = (await qry.ReadNextAsync()).SingleOrDefault();
有谁知道如何使用 Microsoft.Azure.Comos.CosmosClient
获取标量值?
我浏览了网络,找不到任何示例。
我想要做的就是能够执行这样的查询
SELECT value COUNT(c._id)
FROM c
WHERE c._ts > @timestamp
CosmosClient
或 Container
类 似乎都没有任何函数来处理查询类型。
谢谢
您可以执行以下操作:
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();
}
之所以有效,是因为您从 Cosmos REST API 获得了一个 json 整数数组。 SDK 对其执行 JsonConvert.Deserialize<int>
(或类似),您知道其结果是您要求的单个值。
可能有更好的方法,但我也没有在v3
中看到任何标量方法。
var count = await _CosmosClient.GetCosmosContainer(CollectionName).
GetItemLinqQueryable<int>
().CountAsync();
return count;
这就是我对 return 计数所做的。但是,我仍然想知道幕后是否有任何循环。我希望我有一个可以 return 计数的方法。
任何人都可以解释一下我的解决方案与私密的解决方案之间的区别 = (await qry.ReadNextAsync()).SingleOrDefault();