Mesclando coleções no Meteor

Imagine que você tem várias coleções que deseja exibir em um único feed de notícias sociais, por exemploPosts eUsers (novas inscrições). Como você exibia reativamente os dois em uma lista classificada por data de criação?

Ideia 1 - mesclando no cliente

Você publica as entidades separadamente e, no cliente, classifica cada uma delas por data e as mescla em uma única matriz classificada, que é exibida em um{{#each}} iterador.Problema: AFAIK, isso requer o achatamento dos cursores reativos em matrizes estáticas; portanto, a página não será atualizada. (Talvez haja uma maneira de fazer a página recalcular essa matriz quando alguma coleção for alterada, adotando essa abordagem?)

Ideia 2 - criando uma nova coleção

Você cria uma nova coleção, digamosFeedItems. Quando um novoPost ouUser é criado, você também cria um novoFeedItem e copie as informações relevantes para ele. A exibição dos itens no cliente agora é muito direta.Problema: Agora não há reatividade entre os objetos canônicos e osFeedItem versões deles; portanto, se alguém alterar seu nome, excluir uma postagem etc., isso não será refletido no feed. (Talvez haja uma maneira de criar reatividade entre coleções para salvar essa abordagem?)

Ideia 3 - mesclando na publicação

Talvez exista alguma maneira de manter as coleções existentes, mas criar um adicional'newsFeed' publicação que de alguma forma os fundisse. Eu não vi nenhuma maneira de fazer isso, no entanto. Vejo nos documentos que você pode publicar uma matriz de coleções, mas o AFAIK é equivalente a publicar as mesmas coleções, uma de cada vez.

Uma dessas abordagens está no caminho certo? Ou há outro que eu não tenha pensado?

questionAnswers(3)

yourAnswerToTheQuestion