gpt4 book ai didi

Azure CosmosDB 查询资源管理器与数据资源管理器

转载 作者:行者123 更新时间:2023-12-03 02:44:51 24 4
gpt4 key购买 nike

我正在对我的 CosmosDB 实例运行相同的查询(使用 SQL API):

SELECT c.partition, COUNT(1) AS total
FROM c
WHERE c.system = "SF"
GROUP BY c.partition

令我感到有点惊讶的是,我从数据资源管理器获得了预期的结果,而在查询资源管理器选项卡下却收到了400错误请求强> 带有以下消息:

{"code":400,"body":"{\"code\":\"BadRequest\",\"message\":\"Message: {\\"Errors\\":[\\"Cross partition query only supports 'VALUE ' for aggregates.\\"]}\r\nActivityId: d8523615-c2ff-47cf-8102-5256237c7024, Microsoft.Azure.Documents.Common/2.7.0\"}","activityId":"d8523615-c2ff-47cf-8102-5256237c7024"}

我知道我可以使用第一个,但当我尝试从逻辑应用运行查询时,会发生相同的异常:

enter image description here

所以问题非常简单:该查询在语法上是否正确?

最佳答案

根据您的要求,我认为我们可以尝试在您的逻辑应用中使用azure函数而不是“查询文档V2”操作。

这是我的函数代码:

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using System.Collections.Generic;

namespace HuryCosmosFun
{
public static class Function1
{
[FunctionName("Function1")]
public static IActionResult Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
[CosmosDB(
databaseName: "ToDoList",
collectionName: "Items",
SqlQuery = "SELECT c.partition, COUNT(1) AS total FROM c WHERE c.system = 'SF' GROUP BY c.partition",
ConnectionStringSetting = "CosmosDBConnection")]
IEnumerable<ResultsClass> results,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");

foreach (ResultsClass result in results)
{
log.LogInformation(result.partition);
log.LogInformation(result.total.ToString());
}
return new OkResult();
}
}
}
namespace HuryCosmosFun
{
public class ResultsClass
{
public string partition { get; set; }
public int total { get; set; }
}
}

关于上面代码的更多信息,可以引用这个tutorial .

发布到azure后,我们可以create an azure function in logic app ,它会帮助我们进行sql操作。

顺便说一句,自从这个tutorial提到azure cosmos db sdk已经支持“group by”。 enter image description here

我想我们也可以在azure函数中编写代码来通过这个document中的sdk连接和查询cosmos db ,然后在逻辑应用中创建 azure 函数作为第一个解决方案。

希望对您的需求有所帮助~

关于Azure CosmosDB 查询资源管理器与数据资源管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59330026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com