Estratégias de publicação / assinatura de Meteoros para coleções exclusivas do lado do cliente

Usando o Meteor, eu estou querendo saber como melhor lidar com diferentes coletas do lado do cliente que compartilham a mesma coleção de banco de dados do lado do servidor. Considere o seguinte exemplo: eu tenho umUser coleção, e no meu lado do cliente eu tenho umlista de usuários que são amigos e eu tenho um recurso de pesquisa que realiza uma consulta em todo o banco de dados de usuários, retornando umlista de nomes de usuários que correspondem à consulta.

No método Publicar no lado do servidor, tenho duas consultas na mesma coleção que retornam diferentes conjuntos de documentos. Esses dados devem entrar em duas coleções separadas no lado do cliente? Ou todos os documentos do usuário que correspondem às duas consultas acabam na mesma coleção? Se este último, eu iria então duplicar o código usado para a consulta do lado do servidor e do lado do cliente?

No servidor:

Meteor.publish('searchResults', function(query){
  var re = new RegExp(query, 'i')
  return Users.find({ 'name' : {$regex: re}})
})

No cliente:

Session.set('searchQuery', null)

Meteor.autosubscribe(function(){
  Meteor.subscribe('searchResults', Session.get('searchQuery'))
})

Template.search.events = {
  'keyup #user-search' : function(e){
    Session.set('searchQuery', e.target.value)
  }
}

_.extend(Template.search, {

  searchResults: function() {
    var re = new RegExp(Session.get('searchQuery'), 'i')
    return Users.find({ 'name' : {$regex: re}})
  }
})

Essa parece ser uma solução plausível, mas não ótima. E se eu quisesse criar uma nova coleção do lado do cliente que consistisse em resultados de pesquisa de várias coleções do lado do servidor?

questionAnswers(3)

yourAnswerToTheQuestion