2016-12-14 6 views
0

У меня есть json.N1QL соединяется с тем же ведром с некоторой логикой

Первая кампания

"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": "[email protected]", 
} 

Теперь мне нужно присоединиться к этой JSon базы на том, кто имеет ролей = [4] и присоединиться к его детям кампании. здесь детей является пользователь, как ребенок 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 

Но мне нужно, чтобы присоединиться к кампаниям и детям от пользователя, чьи пользователи имеют роли в 4
мне нужно выход как ниже

{ 
user:257 
clicks:157 
} 

ответ

0

Два варианта.

(1) Вы можете начать с кампании, присоединиться к пользователям и затем фильтровать роли потом.

(2) Вы можете начинать с пользователей, фильтровать роли, а затем использовать INDEX JOIN для присоединения пользователей к кампаниям.

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

+0

Вы можете дать мне пример для этого запроса. моя потребность немного отличается. –

+0

Привет @krishnpatel, вы можете публиковать здесь на Stack Overflow или на форумах Couchbase в категории N1QL. Мы можем помочь вам в обоих местах. Что еще более важно, возьмите курс N1QL или прочитайте документы. – geraldss

+0

Я хочу использовать второй вариант, но я не могу понять, как это сделать. в First options, если я присоединяюсь к пользователю, то как я могу присоединиться к пользователю. ребенок также является пользователем. –

Смежные вопросы