Почему есть синтаксическая ошибка - в 0 в этом запросе Couchbase N1QL? - PullRequest
1 голос
/ 17 февраля 2020

У меня есть документ в Couchbase:

{
  "ResponseMessage": {
    "0": {
      "y2": "1",
      "y1": "2"  
    },
    "1": { 
      "x1": "499",
      "x2": "O"
    },
    "CacheTimeOut": "0",
    "ObjectID": "6632 87d7"
  }
}

, когда я выполняю этот запрос,

select ResponseMessage.0.y1 from `my-bucket`

Я получаю этот ответ:

[
  {
    "code": 3000,
    "msg": "syntax error - at 0",
    "query": "select ResponseMessage.0.y1 from `my-bucket`"
  }
]

Если " 0 "равно" a0 ", вместо этого, оно не возвращает ошибку.

Можно ли записать ссылку на имя ключа" 0 "JSON в запросе N1QL?

1 Ответ

1 голос
/ 17 февраля 2020

0 - это буквальное число (как в JSON, так и в N1QL). Поэтому вам нужно будет избежать его.

Решение:

select ResponseMessage.`0`.y1 from `my-bucket`

Используйте этот символ ` (backtick) для выхода

https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/identifiers.html

...