2016-08-02 49 views
0

我使用Azure DocumentDB来存储一些键值对。这是文档的结构我用在Azure DocumentDB中,某些查询不起作用

{ 
    "Key": "Deleted", 
    "Value": { 
     "email": "[email protected]" 
    } 
} 

当我写DocumentDB这样的查询,

SELECT C.Value FROM C 

该查询不起作用。这是我得到的错误消息。

Syntax error, incorrect syntax near 'Value'. 

但这查询工作正常,

SELECT C.Key FROM C 

我明白了 'Value' 应该在蔚蓝documentdb关键字。我如何查询它?

+0

您是否试过引用该标识符?类似于'SELECT C.'Value'FROM C'或'SELECT C.“值”FROM C“ –

+0

您尝试过选择值c.value吗? – Aravind

+0

@MilanTomeš是的,我也尝试了两个。没有进展! –

回答

2

因为您的文档保存为JSON,您可以通过以下方式访问它们:

SELECT C['Value'] FROM C 

这将导致:

[ 
    { 
    "Value": { 
     "email": "[email protected]" 
    } 
    } 
] 
2

值是DocumentDB语法关键字所以这就是为什么你得到一个错误。请参阅本文中的Value关键字DocumentDB syntax - VALUE关键字提供了一种返回JSON值的方法。

要解决这个问题,你可以查询的方式雅尼克说即

SELECT C['Value'] FROM C 
1

在DocumentDB查询语法,语法< collection_expresion> .property_name是< collection_expression完全相同> [“PROPERTY_NAME”。所以,有效地,

c.name 

是相同

c["name"] 

语法< collection_expression> [“PROPERTY_NAME”]允许一个反引用其可能具有非标识符字符,如“我的值的属性(空间我和值),或像 '价值' 的关键字之间, '选择' 等

因此,

SELECT C["Value"] 
FROM C 

将适用于您的情况。