N1QL выберите идентификатор документа И поле JSON с именем id

Я запускаю CB Server 4.1 и отправляю запрос N1QL через пакет Java SDK 2.2.1 для couchbase-client.

В моих документах есть идентификатор документа (очевидно), но также есть поле «id», встроенное в тело документа.

Теперь я хочу выбрать оба. Ни одна из этих работ:

SELECT id, meta(default).id, name FROM default
SELECT id AS 'internal_id', meta(default).id, name FROM default
SELECT id, meta(default).id AS 'docID', name FROM default

В то время как эти работают:

SELECT id, name FROM default
SELECT id AS internal_id, name FROM default
SELECT meta(default).id, name FROM default

Это текущее ограничение, что я не могу назвать внутренние поля "id"?


person sscarduzio    schedule 06.01.2016    source источник


Ответы (1)


Я только что попробовал SELECT id, meta(default).id AS docID FROM default (аналогично вашему третьему заявлению об ошибке), и он работает как в Couchbase Server 4.0, так и в 4.1 (из оболочки cbq).

Однако я отмечу, что вы использовали одинарные кавычки, что не подходит для псевдонимов, так что, может быть, это так? Какое сообщение об ошибке вы получаете при проверке содержимого errors() в вашем N1qlQueryResult?

person Simon Baslé    schedule 06.01.2016