N1QL使用相同的Bucket加入一些逻辑

时间:2016-12-14 11:46:28

标签: couchbase n1ql

我在json之下。

第一次活动

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

第二个USER

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

现在我需要加入这个json基础,谁有角色= [4],并加入其中的儿童与活动。这里孩子就像孩子一样 45表示"用户| 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

但我需要加入广告系列和用户角色为4 的用户的孩子 我需要输出,如下所示

{
 user:257
 clicks:157
}

1 个答案:

答案 0 :(得分:0)

两个选项。

(1)您可以从广告系列开始,加入用户,然后过滤角色。

(2)您可以从用户开始,过滤角色,然后使用INDEX JOIN将用户加入广告系列。

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