OK, jag har utarbetat ett sätt att göra detta utan att göra om hela min databas. Bravo Meteor!
på servern :
Meteor.publish('search_results', function(query){
if(query){
var self = this;
var actors = Actors.find({ $or : [{ name : query}, { actor_biography : query }] ),
films = Films.find({ $or : [{ name : query}, { actor_biography : query }] ),
cinemas = Cinemas.find({ $or : [{ name : query}, { actor_biography : query }] );
actors.forEach(function(doc){
self.added('search_collection', doc._id, { name : doc.name, type : 'actor' });
});
films.forEach(function(doc){
self.added('search_collection', doc._id, { name : doc.name, type : 'film' });
});
cinemas.forEach(function(doc){
self.added('search_collection', doc._id, { name : doc.name, type : 'cinema' });
this.ready();
} else {
this.ready();
}
});
och på klienten :
Deps.autorun(function(){
Meteor.subscribe('search_results', Session.get('currentQuery'));
});
SearchCollection = new Meteor.Collection('search_collection');
Nu innehåller SearchCollection de data jag vill ha från resultaten, där jag kan bestämma vilken data jag vill ha från varje samling separat.
En nackdel är att jag helt klart duplicerar data - vissa om inte alla dessa poster finns redan på klienten...