Document DB代码执行查询时出现group by附近语法错误如何解决?
解决方案
报错原因
SC1001错误码+group附近语法错误的核心原因是你使用的旧版Azure Document DB(现Azure Cosmos DB SQL API)Java v2 SDK不支持GROUP BY语法,该特性是后续版本新增能力,旧版SDK的queryDocuments接口无法识别GROUP BY关键字。
解决方式
- 优先升级SDK版本:将当前使用的Java v2 SDK升级到Azure Cosmos DB Java SDK v4及以上稳定版,即可原生支持
GROUP BY查询,你现有的查询语句写法本身符合规范,升级后不需要调整查询内容。 - 临时兼容方案:如果暂时无法升级SDK,可以先修改查询语句,删除
GROUP BY子句和聚合函数,先拉取所有符合过滤条件的文档:
拿到结果后在业务代码内存中,以List<Document> documentList = documentClient .queryDocuments( collectionLink, "SELECT c.copyCount, c.pk, c.jobId,c.to,c[\"from\"]\n" + "FROM root c where c.jobId=\"58a08e66768d4330940a9546c19a94ab\"", option) .getQueryIterable() .toList();pk、jobId、to、from四个字段为分组键,累加copyCount的值得到最终聚合结果即可。
内容的提问来源于stack exchange,提问作者sar
相关产品推荐
相关产品推荐

