首页 > 解决方案 > 使用 COSMOSDB sql 查询的对象键的别名

问题描述

我正在使用 Cosmos DB,我想编写一个 SQL 查询,该查询返回文档对象中键的不同名称。

详细地说,假设您在一个容器中有以下文档,“make”对象中的“makeName”键。

{ 
   "vehicleDetailId":"38CBEAF7-5858-4EED-8978-E220D2BA745E",
   "type":"Vehicle",
   "vehicleDetail":{ 
      "make":{ 
         "Id":"B57ADAAD-C16E-44F9-A05B-AAB3BF7068B9",
         "makeName":"BMW"
      }
   }
}

我想编写一个查询来显示“vehicleMake”键来代替“makeName”。如何在嵌套对象属性中提供别名。

输出应如下所示

{ 
   "vehicleDetailId":"38CBEAF7-5858-4EED-8978-E220D2BA745E",
   "type":"Vehicle",
   "vehicleDetail":{ 
      "make":{ 
         "Id":"B57ADAAD-C16E-44F9-A05B-AAB3BF7068B9",
         "vehicleMake":"BMW"
      }
   }
}

我不知道如何在 Cosmosdb 中查询以获得上述结果。

标签: azureazure-cosmosdbazure-cosmosdb-sqlapi

解决方案


属性的别名类似于在 SQL Server 中使用as关键字创建列别名的方式。在您的示例中,它将是:

SELECT c.vehicleDetail.make.makeName as vehicleMake
FROM c

这将返回:

[
  {
    "vehicleMake": "BMW"
  }
]

推荐阅读