如何解决获取多个属性的最大值 CosmosDB
我有多个 cosmosdb 文档,它们在层次结构中有一个入口点, 我需要根据我提供的级别值选择最接近的匹配项。
底部的查询有效,但我现在需要从中选择以返回具有最佳匹配的第一个文档。例如
SELECT c.id,(MAX(p.level1Match,p.level2Match,p.level3Match,p.level4Match)) as match FROM (sub query below) p ORDER by match (Take first)
子查询:
(SELECT
c.id,(c.level1= 'level1Value' ? 1 : 0) as level1Match,(c.level2= 'level2Value' ? 2 : 0) as level2Match,(c.level3= 'level3Value' ? 3 : 0) as level3Match,(c.level4= 'level4Value' ? 4 :0) as level4Match
FROM c
WHERE c.Name = 'NameValue')
但我不知道如何让它与 CosmosDb 一起工作,或者如果这是最好的方法,我们将不胜感激。
更新,根据要求会有多个看起来像这样的文档
{
"id" : "b2fcac67-b5ee-4646-ac77-f14db8f8fec0","name" : "OrgName","level1" : "Head Office","level2" : "HR","level2" : null,"level3" : null,"level4" : null,"reportDate" : dateTime,"notes" : "","isCurrent" : true
},{
"id" : "b2fcac67-b5ee-4646-ac77-f14db8f8fec0","level2" : "Another Branch","level3" : "Staff","isCurrent" : true
}
因此项目可以位于层次结构中的不同级别,我会将级别作为参数传递以进行匹配。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。