MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

Meteor.js - अनेक संग्रहों पर उपयोगकर्ता खोज करने के तरीके

ठीक है मैंने अपने पूरे डेटाबेस को दोबारा किए बिना ऐसा करने का एक तरीका निकाला है। ब्रावो उल्का !

सर्वर पर :

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 में वह डेटा है जो मैं परिणामों से चाहता हूं, जहां मैं यह तय कर सकता हूं कि मुझे प्रत्येक संग्रह से अलग से कौन सा डेटा चाहिए।

एक नुकसान यह है कि मैं स्पष्ट रूप से डेटा की नकल कर रहा हूं - कुछ यदि ये सभी रिकॉर्ड क्लाइंट पर पहले से मौजूद नहीं हैं...




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDb क्षेत्रीय प्रतिकृति सेट - प्रत्येक क्षेत्र में प्राथमिक नोड?

  2. MongoDB:सर्वर में स्टार्टअप चेतावनियाँ हैं

  3. MongoRepository findByCreatedAt बीच में सटीक परिणाम नहीं लौटाता

  4. कीस्टोनज ऐप में मोंगो कनेक्शन बंद

  5. किसी मौजूदा स्प्रिंग-डेटा-मोंगोडब दस्तावेज़ संग्रह में अंतिम फ़ील्ड कैसे जोड़ें?