Использование зарезервированного имени поля слова в DocumentDB

Я унаследовал базу данных, загруженную в DocumentDB, где имя поля оказалось "Значение". Пример моей структуры:

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

когда я запрашиваю (используя SQL DocumentDB), пытаясь вернуть все документы, где Alternates.Value = "NOCALL", Я получаю синтаксическую ошибку рядом

Ошибка "Значение"

, Если я запрашиваю Type = "ID", все хорошо

Кажется, что слово Value, имеющее особое значение для DocumentDB, вызывает проблему.

Помещение знаков препинания (например, кавычки / двойные кавычки) вокруг значения не помогает.

Любое предложение о том, как решить эту проблему, будет высоко ценится!

Заранее спасибо!

2 ответа

Ты прав. Значение является зарезервированным ключевым словом. Чтобы избежать этого, используйте [""] синтаксис.

Так что в вашем случае

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

ВЫБЕРИТЕ c ИЗ c СОЕДИНЯЕТСЯ

В моем случае структура выглядит примерно так - {"name": "ABC", "Value": 123}.

Я мог бы избежать зарезервированного ключевого слова, используя [""] (как ответили другие) вместе с <source_name>, т.е.

SELECT c["Value"] FROM c - 123

Ссылка: запросы в Azure Cosmos DB

Другие вопросы по тегам