我使用Azure DocumentDB来存储一些键值对。这是我用过的文件的结构
{
"Key": "Deleted",
"Value": {
"email": "abc@cdf.com"
}
}
当我像这样编写DocumentDB查询时,
SELECT C.Value FROM C
此查询不起作用。这是我收到的错误消息。
Syntax error, incorrect syntax near 'Value'.
但是这个查询工作正常,
SELECT C.Key FROM C
我理解' Value
'应该是azure documentdb中的关键字。我怎么查询呢?
答案 0 :(得分:4)
Value是DocumentDB语法中的关键字,因此这就是您收到错误的原因。请参阅本文中的值关键字DocumentDB syntax - VALUE关键字提供了返回JSON值的方法。
为了解决这个问题,你可以按照Yannick的说法来查询,即
SELECT C['Value'] FROM C
答案 1 :(得分:2)
因为您的文档存储为JSON,所以您可以按如下方式访问它们:
SELECT C['Value'] FROM C
这将导致:
[
{
"Value": {
"email": "abc@cdf.com"
}
}
]
答案 2 :(得分:1)
在DocumentDB查询语法中,语法< collection_expresion> .property_name与<完全相同collection_expression> [“property_name”]。所以,实际上,
c.name
与
相同c["name"]
语法< collection_expression> [“property_name”]允许人们拒绝可能包含非标识符字符的属性,例如“我的值”(我和值之间的空格),或“值”,“选择”等关键字。
因此,
SELECT C["Value"]
FROM C
将适用于您的情况。