N1QL 以某种逻辑加入同一个 Bucket

N1QL join with same Bucket with some logic

我有以下json.

第一次战役

"campaign|1000":{
  "_id": 1000,
  "_type": "Campaign",
  "country": 14,
  "created": "2016-03-08T18:30:00.000Z",
  "user": 45
  "bids":[{
          click:123     
         },
        {
           click:50
        }
         ]
}

第二个用户

"User|257"{
  "IMId": "",
  "IMType": 0,
  "_id": 257,
  "_type": "User",
  "children:[1,4,45,67,106]
  "roles":[4]
  "email": "krishn@inheritx.com",
}

现在我需要根据谁拥有角色=[4] 加入这个 json 并通过竞选加入 children。这里 children 是用户 like child 45 表示 "User|45" 我正在尝试以下查询

select Users._id,count(Campaign._id) total from Inheritx Campaign 
join Inheritx Users on keys("User|"|| TOSTRING(Campaign.`user`))
join reachEffect realted_users on keys ARRAY "User|" || TOSTRING FOR  
c IN Users.children END  where Campaign._type="Campaign" and              
Users.roles=[4] group by Users._id

但我需要加入活动,children 的用户有角色是 4
我需要 output 如下所示

{
 user:257
 clicks:157
}

两个选项。

(1) 您可以从活动开始,加入用户,然后再根据角色进行过滤。

(2) 您可以从用户开始,筛选角色,然后使用 INDEX JOIN 将用户加入市场活动。

https://dzone.com/articles/join-faster-with-couchbase-index-joins