2016-07-14 2 views
1

Couchbase - Версия 4.1.0-5005Couchbase Join Не удалось Вернуться JSON

Query Workbench Developer Review - Version 1.0.2

Я работаю над процессом, чтобы определить, существует ли модель для Grid. Я начинаю с создания раздела N1QL Statement (см. Ниже). Этот оператор N1QL определяет ассоциацию Grids с моделью. До создания этого заявления N1QL я запускал отдельные инструкции, чтобы обеспечить представленный идентификатор модели в обоих типах документов.

select a.model_id 
    from inputs as a 
     join inputs as b on keys a.model_id 
where a.type = 'Model' 
    and b.type = 'Grid' 
    and a.model_id = 100 

Я смоделировал заявление N1QL после того, как в примере, представленном Couchbase пивного образец (приведено ниже). Кроме того, я изменил пример Couchbase, чтобы отразить это.

select br.name brewery, 
     b.name beer, 
     b.style style 
    from `beer-sample` b 
     join `beer-sample` br on keys b.brewery_id 
where b.type = 'beer' 
    and br.type = 'brewery' 
    and b.name = '21A IPA' 

Когда я выполняю пример Couchbase, я получаю один документ JSON. Когда я выполняю свое заявление N1QL, он не возвращает документ JSON. Я подтвердил, что оба типа содержат по крайней мере один документ JSON для указанного идентификатора модели. Ведро содержит только первичный индекс. Других индексов нет.

Я ценю любое предложение в решении этой проблемы.

ТИА

ответ

2

Первичный ключ (внешний идентификатор) ваших грид документов должна быть такой же, как model_id вашей модели документа.

Синтаксис N1QL не соединяется с общим полем. Он соединяет выражение от левого члена к первому ключу правого члена.

+0

Благодарим вас за ответ. Похоже, я не смогу выполнить объединения на основе настройки ведра. Первичный ключ для обеих таблиц различен. –

+0

Хорошо. Надеюсь, вы можете перейти к настройке с использованием первичных ключей, особенно если вы используете связь 1: N. – geraldss

Смежные вопросы