ГНЕЗД В КУХНЕ - PullRequest
       32

ГНЕЗД В КУХНЕ

0 голосов
/ 26 сентября 2019

Как вкладывать данные в couhcbase, аналогично mongo DB, мы делаем по ссылочному ключу.у нас есть две таблицы В корзине первая таблица "CHAIN", а вторая таблица "STORE".

Ранее я был пользователем MONGO и очень плохо знаком с couchbase.

Пожалуйста, предложите, как я могугнездо с использованием N1QL для couchbase

Table 1 CHAIN
{
     "chId": "chid_1",
     "chName": "Walmart",
      "type": "CHAIN"
}

2nd table STORE
{
     "chId": "chid_1",
     "csName": "store1",
     "type": "STORE"
}
{
     "chId": "chid_1",
     "csName": "store2",
     "type": "STORE"
}
I want to get data by joing these table as 
{
   "chId": "chid_1",
   "chName": "Walmart",
   "type": "CHAIN",
   "stores": [
            {"csName": "store1", "type": "STORE"},
            {"csName": "store2", "type": "STORE"}]
}



1 Ответ

0 голосов
/ 26 сентября 2019

Используйте JOIN, GROUP BY.Также оформить заказ https://blog.couchbase.com/ansi-join-support-n1ql/

CREATE INDEX ix1 ON (chId) WHERE type = "CHAIN";
CREATE INDEX ix2 ON (chId) WHERE type = "STORE";

    SELECT c.*, ARRAY_AGG({s.type, s.csName}) AS stores
    FROM default AS c
    JOIN default AS s ON c.chId = s.chId
    WHERE c.type = "CHAIN" AND s.type = "STORE"
    GROUP BY c;

Вы также можете использовать ANSI NEST, если хотите включить весь документ

SELECT c.*, s AS stores
FROM default AS c
NEST default AS s ON c.chId = s.chId AND s.type = "STORE"
WHERE c.type = "CHAIN";
...