Использование зарезервированного имени поля слова в 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