如何在Cosmos DB中实现查询别名字段同时返回其余所有字段
错误原因
Cosmos DB SQL语法不支持在未指定根对象前缀的场景下,同时选择自定义字段和*通配符,你之前写的SELECT c.pk as pk1, * FROM c不符合语法规范,因此触发报错。
可行解决方案
使用Cosmos DB内置的对象合并运算符搭配VALUE关键字即可实现需求,不需要手动罗列其余字段,后续文档新增字段也会自动返回,无需修改查询:
最终查询语句
SELECT VALUE {"pk1": c.pk} || c FROM c
效果说明
查询返回的每一条结果会完整保留原文档的所有字段(包括原生的pk字段),同时额外新增pk1字段,值与原pk完全一致,完全适配Azure Data Factory Copy Data活动的字段映射要求。
如果你的Cosmos DB实例是较旧的版本,不支持||合并运算符,可将语句替换为:
SELECT VALUE {"pk1": c.pk} + c FROM c
内容的提问来源于stack exchange,提问作者YMC
相关产品推荐
相关产品推荐

