我正在使用Cosmos DB,我想编写一个SQL查询,该查询将返回文档对象中键的不同名称。
详细说明一下,假设您在一个容器中具有以下文档,该容器在“ make”对象中具有“ makeName”键。
MyCustomObj customObj = (MyCustomObj) parentLayout.getAdapter().getItem(i);
我想编写一个查询以显示“ vehicleMake”键代替“ makeName”。 如何在嵌套对象属性中提供别名。
输出应如下所示
{
"vehicleDetailId":"38CBEAF7-5858-4EED-8978-E220D2BA745E",
"type":"Vehicle",
"vehicleDetail":{
"make":{
"Id":"B57ADAAD-C16E-44F9-A05B-AAB3BF7068B9",
"makeName":"BMW"
}
}
}
我不知道如何在Cosmosdb中进行查询以获得上述结果。
答案 0 :(得分:1)
属性别名类似于您使用as
关键字在SQL Server中创建列别名的方式。在您的示例中,它将是:
SELECT c.vehicleDetail.make.makeName as vehicleMake
FROM c
这将返回:
[
{
"vehicleMake": "BMW"
}
]
答案 1 :(得分:0)
尝试一下:
SELECT c.vehicleDetailId, c.type,
{"make":{"Id":c.vehicleDetail.make.Id, "vehicleMake":c.vehicleDetail.make.makeName}} as vehicleDetail
FROM c
它使用以下文档中描述的别名。我可以在文档或博客文章中找到的所有别名示例都仅显示了一个json输出级别,但是碰巧您可以将一个对象(make)嵌套在一个对象(vehichleDetail)中以获得所需的行为。>
https://docs.microsoft.com/en-us/azure/cosmos-db/sql-query-aliasing