You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cosmos容器查询故障:无法返回各featureTag的最新版本条目

Cosmos DB 查询修复:获取每个featureTag的最新版本条目

你的查询之所以返回所有条目,核心问题是version字段是字符串类型——Cosmos DB的MAX()函数对字符串做的是字典序比较,而非数值比较。比如字符串"10"会被判定为小于"2",导致无法正确筛选出最高版本的条目。

修复后的查询(推荐方案)

将version字段转为数值类型后再计算最大值,确保逻辑按数值大小判断:

SELECT c
FROM c
JOIN (
    SELECT 
        c.featureTag, 
        MAX(CAST(c.version AS INT)) AS latest_version
    FROM c
    GROUP BY c.featureTag
) AS latest_versions
WHERE 
    c.featureTag = latest_versions.featureTag 
    AND CAST(c.version AS INT) = latest_versions.latest_version

说明

  1. 用CAST(c.version AS INT)将字符串类型的version转为整数,让MAX()按数值大小计算每个featureTag的最高版本
  2. WHERE条件中同样对version做类型转换,确保匹配到正确的条目
  3. 如果你的version是带小数的格式(比如"1.5"),可以把INT替换为FLOAT

测试验证

假设容器内有以下两个同featureTag的条目:

{
    "featureName": "Extra File Download",
    "featureTag": "Extrafile-download",
    "version": "2",
    "startTime": "2024-03-21T17:00:00",
    "endTime": "2024-03-22T16:00:00",
    "groups": ["EXTENSION-Factory"],
    "factoryAffiliations": ["AAA"],
    "dependencyFeatures": ["usecase-code"]
}
{
    "featureName": "Extra File Download",
    "featureTag": "Extrafile-download",
    "version": "10",
    "startTime": "2024-03-23T17:00:00",
    "endTime": "2024-03-24T16:00:00",
    "groups": ["EXTENSION-Factory"],
    "factoryAffiliations": ["AAA"],
    "dependencyFeatures": ["usecase-code"]
}

原查询会返回version为"2"的条目(字符串字典序"2">"10"),修复后的查询会正确返回version为"10"的最新条目。

内容的提问来源于stack exchange,提问作者Md Tauhid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:25:05