ठीक है मैंने अपने पूरे डेटाबेस को दोबारा किए बिना ऐसा करने का एक तरीका निकाला है। ब्रावो उल्का !
सर्वर पर :
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();
}
});
और ग्राहक पर :
Deps.autorun(function(){
Meteor.subscribe('search_results', Session.get('currentQuery'));
});
SearchCollection = new Meteor.Collection('search_collection');
अब SearchCollection में वह डेटा है जो मैं परिणामों से चाहता हूं, जहां मैं यह तय कर सकता हूं कि मुझे प्रत्येक संग्रह से अलग से कौन सा डेटा चाहिए।
एक नुकसान यह है कि मैं स्पष्ट रूप से डेटा की नकल कर रहा हूं - कुछ यदि ये सभी रिकॉर्ड क्लाइंट पर पहले से मौजूद नहीं हैं...