在 Azure DocumentDB 中,某些查询不起作用

Kam*_*ake 1 azure azure-cosmosdb

我使用 Azure DocumentDB 来存储一些键值对。这是我使用的文档的结构

{
    "Key": "Deleted",
    "Value": {
      "email": "abc@cdf.com"
    }
}
Run Code Online (Sandbox Code Playgroud)

当我像这样编写 DocumentDB 查询时,

SELECT C.Value FROM C
Run Code Online (Sandbox Code Playgroud)

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

Syntax error, incorrect syntax near 'Value'.
Run Code Online (Sandbox Code Playgroud)

但是这个查询工作正常,

SELECT C.Key FROM C
Run Code Online (Sandbox Code Playgroud)

我知道 ' Value' 应该是 azure documentdb 中的关键字。我该如何查询?

maj*_*ita 7

Value 是 DocumentDB 语法中的关键字,因此这就是您收到错误的原因。请参阅本文中的 Value 关键字DocumentDB 语法- VALUE 关键字提供了一种返回 JSON 值的方法。

为了解决这个问题,您可以按照 Yannick 所说的方式查询它,即

SELECT C['Value'] FROM C
Run Code Online (Sandbox Code Playgroud)


Yan*_*eus 5

由于您的文档存储为 JSON,因此您可以按如下方式访问它们:

SELECT C['Value'] FROM C
Run Code Online (Sandbox Code Playgroud)

这将导致:

[
  {
    "Value": {
      "email": "abc@cdf.com"
    }
  }
]
Run Code Online (Sandbox Code Playgroud)