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

如何在Azure Cosmos DB中查询嵌套数组内的指定文件名?

Azure Cosmos DB 查询嵌套数组中指定文件名的解决方法

针对你提供的嵌套JSON结构,在Cosmos DB数据资源管理器中可以通过多层JOIN来展开嵌套数组,从而精准查询指定文件名。以下是具体实现方案:

1. 查询包含指定文件名的完整文档

如果需要找出所有包含目标文件名的文档,使用以下SQL:

SELECT *
FROM c
JOIN a1 IN c.array1
JOIN a2 IN a1.array2
WHERE a2.fileName = "filename1.pdf"
  • 这里的JOIN a1 IN c.array1展开外层的array1数组,JOIN a2 IN a1.array2进一步展开每个array1元素下的array2数组,最终可以直接访问a2.fileName进行条件过滤。

2. 仅返回匹配的文件名及关联实体ID

如果只需要提取匹配的文件名和对应的entityId,可以简化查询结果:

SELECT c.entityId, a2.fileName
FROM c
JOIN a1 IN c.array1
JOIN a2 IN a1.array2
WHERE a2.fileName = "filename1.pdf"

3. 模糊查询文件名

如果需要匹配文件名中包含特定字符串(比如所有PDF文件),可以使用CONTAINS函数:

SELECT c.entityId, a2.fileName
FROM c
JOIN a1 IN c.array1
JOIN a2 IN a1.array2
WHERE CONTAINS(a2.fileName, ".pdf")

注意事项

Cosmos DB中展开嵌套数组使用的是JOIN关键字,而非部分数据库中的FLATTEN,这可能是你之前尝试失败的原因。只要按照数组嵌套层级依次使用JOIN,就能逐层访问到深层的fileName字段。

内容的提问来源于stack exchange,提问作者Julito Avellaneda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:50:25