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

Ale*_*ner 7 sql field reserved azure-cosmosdb

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

{
...
   "Alternates": [
      "Type": "ID",
      "Value" : "NOCALL"
   ]
}
Run Code Online (Sandbox Code Playgroud)

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

"价值"错误

.如果我查询Type = "ID",它就好了.

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

在"价值"周围加上标点符号(例如引号/双引号)似乎没有帮助.

任何关于如何解决这个问题的建议将不胜感激!

先感谢您!

Rya*_*our 23

你是对的.值是保留关键字.要逃避使用[""]语法.

所以在你的情况下

"Alternates":["Type":"ID","Value":"NOCALL"]

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


小智 6

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

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

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

参考:在 Azure Cosmos DB 中查询