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

如何在Cosmos DB中按userId分组并获取最新完整卡片数据

Cosmos DB 获取每个用户最新修改的完整卡片

可以实现,利用ARRAY_AGG聚合函数结合排序来获取每个用户最新的完整卡片文档,具体SQL语句如下:

SELECT 
    c.userId, 
    ARRAY_AGG(c ORDER BY c.modifiedAt DESC)[0] AS latestCard
FROM Card c
WHERE ARRAY_CONTAINS([""], c.userId)
GROUP BY c.userId

语句说明:

  • ARRAY_AGG(c ORDER BY c.modifiedAt DESC):将同一个userId分组下的所有卡片文档,按modifiedAt从新到旧排序后聚合成一个数组
  • [0]:取数组的第一个元素,也就是该用户最新修改的完整卡片,包含createdAt、id、number等所有字段

你之前的查询只能返回分组键和聚合后的modifiedAt,是因为Cosmos DB的GROUP BY规则限制:SELECT子句只能包含分组键和聚合函数结果,无法直接选择非分组的其他字段。通过ARRAY_AGG聚合并排序后取首元素的方式,就能绕过这个限制拿到完整的最新卡片信息。

内容的提问来源于stack exchange,提问作者Mahammad Khalilov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:55:13