Map reduce com join entre collections
Olá pessoal, tudo bem?
tenho um exemplo de uma collection, onde preciso contar a quantidade de clicks e emissões de uns usuários. Já consegui fazer map reduce por usuário.
Agora preciso identificar por perfil de usuário qual seria o total de clicks e emissões, mas por idade e gênero, esta informação está em outra collection.
Como posso fazer map reduce fazendo este "join" entre collections?
Segue meu código:
Muito obrigado pelo apoio.
Atenciosamente
Andres Ruiz
Essa dúvida foi gerada a partir de um comentário na aula Map-Reduce - Curso de MongoDB - Aula 19
tenho um exemplo de uma collection, onde preciso contar a quantidade de clicks e emissões de uns usuários. Já consegui fazer map reduce por usuário.
Agora preciso identificar por perfil de usuário qual seria o total de clicks e emissões, mas por idade e gênero, esta informação está em outra collection.
Como posso fazer map reduce fazendo este "join" entre collections?
Segue meu código:
Reduce por usuario:
-----------------------------------------------
first_map = function() {
emit(this.UserID, {total_clicks: this.click,total_impresions: this.impresion} );
}
-- reduce FUNCTION:
first_reduce = function(key, values) {
var result = { total_clicks: 0, total_impresions: 0};
values.forEach(function(value)
{
result.total_clicks += value.total_clicks;
result.total_impresions += value.total_impresions;
});
return result;
}
-- EXECUTION OF THE MAP/REDUCE:
var r = db.training.mapReduce(first_map,first_reduce,{out : "ColTotals"});
r;
db.ColTotals.find();
-----------------------------------------------
Segue um exemplo da collection que contem meus valores para el userid_profile:
db.userid_profile.findOne()
{
"user_ID": 8 , "gender" : 2 , "age" : 4
}Muito obrigado pelo apoio.
Atenciosamente
Andres Ruiz
Essa dúvida foi gerada a partir de um comentário na aula Map-Reduce - Curso de MongoDB - Aula 19
Andres Quitian
Curtidas 0