如何通过查询从Cosmos DB提取大型JSON中的指定数据?
针对Cosmos DB不同文档的特定字段提取方案
1. 提取doc1的Date、Subject、Description字段
使用Cosmos DB SQL API查询,直接投影目标字段并过滤目标文档:
SELECT c.Date, c.Subject, c.Description FROM c WHERE c.id = 'doc1' -- 若文档用`documentType`标识类型,替换为 c.documentType = 'doc1'
2. 提取doc2的Date、Subject、Description及Status字段
同理,扩展投影字段即可:
SELECT c.Date, c.Subject, c.Description, c.Status FROM c WHERE c.id = 'doc2' -- 或 c.documentType = 'doc2'
3. 提取doc3的documentUrl及pageNo为2、3的pageText字段
针对嵌套的pages数组,用JOIN筛选指定pageNo的元素,可选将结果聚合为数组:
方式1:返回单条pageText记录
SELECT c.documentUrl, p.pageText FROM c JOIN p IN c.pages -- 假设pages是存储分页信息的数组字段 WHERE c.id = 'doc3' -- 或 c.documentType = 'doc3' AND p.pageNo IN (2, 3)
方式2:将符合条件的pageText聚合为数组
SELECT c.documentUrl, ARRAY_AGG(p.pageText) AS filteredPageTexts FROM c JOIN p IN c.pages WHERE c.id = 'doc3' AND p.pageNo IN (2, 3) GROUP BY c.documentUrl
注意事项
- 替换WHERE子句中的匹配条件为你的文档实际使用的类型标识字段(比如
documentType而非id) - 这类查询仅返回指定字段,避免传输完整大文档,适合处理大型JSON数据
内容的提问来源于stack exchange,提问作者Popeye
相关产品推荐
相关产品推荐

