在DocumentDB中使用保留字字段名称

时间:2015-06-15 15:38:31

标签: sql field azure-cosmosdb reserved

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

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

当我查询(使用documentDB' SQL)时,试图找回所有Alternates.Value = "NOCALL",我在

附近出现语法错误的文档
  

"值"错误

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

似乎在DocumentDB上具有特殊含义的Value这个词导致了一个问题。

将标点符号(例如引号/双引号)放在"值"似乎没有帮助。

非常感谢任何关于如何解决这个问题的建议!

提前谢谢!

2 个答案:

答案 0 :(得分:21)

你是对的。值是保留关键字。 为了逃避这种使用[""]语法。

所以在你的情况下

" Alternates":[       "输入":" ID",       "值" :" NOCALL"    ]

SELECT c 来自c JOIN alt IN c.Alternates alt where [" Value"] =' NOCALL'

答案 1 :(得分:0)

就我而言,结构看起来像这样 - { "name": "ABC", "Value": 123 }.

我可以使用 [""] (如其他人的回答) 和 转义保留关键字,即

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

参考:Querying in Azure Cosmos DB