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

Cosmos DB NoSQL:基于familyID用子查询实现嵌套文档SELECT查询

Azure Cosmos DB NoSQL 查询:嵌套关联的Dog/Cat到Family文档

完整查询语句

针对指定familyId='100',实现嵌套结构的查询如下:

SELECT 
    f,
    -- 嵌套同家庭的Dog文档为canines数组
    (SELECT VALUE d FROM d IN Families WHERE d.type = 'dog' AND d.familyId = f.familyId) AS canines,
    -- 嵌套同家庭的Cat文档为felines数组
    (SELECT VALUE c FROM c IN Families WHERE c.type = 'cat' AND c.familyId = f.familyId) AS felines
FROM Families f
WHERE f.type = 'family' AND f.familyId = '100'

核心逻辑说明

  • 主查询定位Family文档:先筛选type='family'的目标家庭文档,避免返回无关的扁平宠物数据。
  • 子查询实现嵌套聚合:
    • SELECT VALUE的作用:直接返回宠物文档的原始内容,不会生成带外层键的包装对象,让嵌套数组结构更纯净。
    • 通过d.familyId = f.familyId关联主查询的Family文档,确保只聚合同家庭的宠物数据。
  • 灵活保留原有属性:如果需要单独指定返回的Family字段(而非全部属性),可以替换f为具体字段,比如:
    SELECT 
      f.id,
      f.name,
      f.address,
      (SELECT VALUE d FROM d IN Families WHERE d.type = 'dog' AND d.familyId = f.familyId) AS canines,
      (SELECT VALUE c FROM c IN Families WHERE c.type = 'cat' AND c.familyId = f.familyId) AS felines
    FROM Families f
    WHERE f.type = 'family' AND f.familyId = '100'
    

执行效果

返回结果为包含目标Family的数组,每个Family文档内嵌套了同家庭的所有canines(Dog集合)和felines(Cat集合),完全替代了原有的扁平列表结构。

内容的提问来源于stack exchange,提问作者Kevin K

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:52:42