14

我继承了一个加载到 DocumentDB 中的数据库,其中字段名称恰好是“值”。我的结构示例是:

{
...
   "Alternates": [
      "Type": "ID",
      "Value" : "NOCALL"
   ]
}

当我查询(使用documentDB的SQL)时,试图取回Alternates.Value = "NOCALL",我附近出现语法错误的所有文档

“价值”错误

. 如果我查询Type = "ID",这一切都很好。

似乎在 DocumentDB 上具有特殊含义的 Value 一词引起了问题。

在“值”周围加上标点符号(例如引号/双引号)似乎没有帮助。

任何有关如何解决此问题的建议将不胜感激!

先感谢您!

4

2 回答 2

32

你是对的。值是保留关键字。要转义此使用 [""] 语法。

所以在你的情况下

“替代”:[“类型”:“ID”,“值”:“NOCALL”]

SELECT c FROM c JOIN alt IN c.Alternates WHERE alt["Value"] = 'NOCALL'

于 2015-06-15T17:28:40.880 回答
2

在我的例子中,结构看起来像这样 - {“name”:“ABC”,“Value”:123}。

我可以使用 [""] (由其他人回答)和 <source_name> 一起转义保留关键字,即

SELECT c["Value"] FROM c -- 123

参考:在 Azure Cosmos DB 中查询

于 2021-05-26T14:36:42.370 回答