如何在N1QL和Couchbase中创建索引并使用join

时间:2016-12-01 12:25:53

标签: node.js couchbase n1ql

我在相同的默认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",

 }

此处密钥是" name | _id"我在每个json之前都有怀疑。

我有这种类型的所有json。 我已尝试通过引用此来源Couchbase N1QL join query

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

我得到了渴望的结果。

但当我删除 USE KEYS"公司| a1091aa0-b548-11e6-957e-139be07f46df" 然后运行以下查询时,我收到错误 INDEX

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"

即使我收到索引错误。

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

0 个答案:

没有答案