如何合并Cosmos DB查询以获取指定文档中数组的特定元素
Cosmos DB 查询合并方案
你需要的是定位到指定版本的文档后,仅提取该文档中符合条件的语言对象,可以通过JOIN语句关联文档和其数组元素,结合双重条件筛选来实现:
基础查询(仅返回目标语言对象)
SELECT lang FROM c JOIN lang IN c.Languages WHERE c.id = "LanguageList-V3" AND lang.languageId = "af"
逻辑说明
FROM c:遍历容器中的所有文档WHERE c.id = "LanguageList-V3":先锁定你需要的目标版本文档JOIN lang IN c.Languages:遍历该目标文档内的Languages数组,将每个数组元素命名为langAND lang.languageId = "af":在遍历出的数组元素中筛选出指定languageId的对象
可选:返回带文档标识的结构
如果需要同时保留文档版本信息和目标语言对象,可以调整SELECT部分:
SELECT { "documentVersion": c.id, "targetLanguage": lang } FROM c JOIN lang IN c.Languages WHERE c.id = "LanguageList-V3" AND lang.languageId = "af"
这个查询既避免了返回整个大数组,又确保只从指定版本的文档中提取数据,完美解决你两个单独查询的痛点。
内容的提问来源于stack exchange,提问作者Greg Gum
相关产品推荐
相关产品推荐

