如何在 N1QL 和 Couchbase 中创建索引和使用连接

how to create index and use join in N1QL and Couchbase

我在 相同的默认 Bucket

中有如下三个 json

如何加入这三个json??

第一个

"Country|1":{
  "_id": 1,
  "_type": "Country",
  "currency": "Afghani",
  "iso2": "AF",
  "name": "Afghanistan"
}

"Company|a1091aa0-b548-11e6-957e-139be07f46df": 
  {
  "_id": "a1091aa0-b548-11e6-957e-139be07f46df",
  "_type": "Company",
  "companyTypes": [
    1
  ],
  "country": "Country|1",
}

第三

"Campaign|1001":{
  "_id": 1001,
  "_type": "Campaign",
  "banners": [],
  "carriers": [
    "Telstra"
  ],
  "country": 1,
  "created": "2016-03-08T18:30:00.000Z",

 }

这里 key 是 "name|_id" 我在每个 json.

之前都有 wright

这种类型我都有json。 我已尝试通过参考此来源

来加入如下查询
SELECT d1.*,d2.* FROM 
default d1 USE KEYS "Company|a1091aa0-b548-11e6-957e-139be07f46df"
JOIN default d2 ON KEYS d1.country;

我得到了想要的结果。

但是当我删除 USE KEYS "Company|a1091aa0-b548-11e6-957e-139be07f46df" 然后 运行 下面的查询时,我得到 INDEX[ 的错误=17=]

SELECT d1.*,d2.*
FROM default d1 
JOIN default d2 ON KEYS d1.country;

我也尝试创建如下索引

CREATE INDEX campaign_user_co ON `default` (TOSTRING(country)) 
where _type="Company"

即使我得到 Index 错误。

键空间默认值上没有与您的查询匹配的可用索引。

尝试添加主索引。

CREATE PRIMARY INDEX ON default;

将您的密钥空间名称替换为 default