2017-10-03 3 views
0

Derzeit habe ich eine Pub/Sub mit Meteor. Auf meiner reagierenden nativen App abonniere ich ein Abonnement.Meteor Subscription ist wirklich langsam

Die Subskription tut nur etwas wie collection.find() Aber die Zeit, die ich den bereiten Zustand für das Abonnement bekam, ist wirklich lang. Die Sammlung hat nur 330 Dokumente.

Hier ist meine Publikation:

Meteor.publish("clients",() => clients.find());

Ist es normal?

Danke

+2

Ja, es ist wahrscheinlich normal, wenn Sie die Datensatznummer und die Felder, die Ihre Veröffentlichungsmethode zurückgibt, nicht beschränken. Versuchen Sie, ein Limit hinzuzufügen und dann testen, ob es schneller werden wird – bennygenel

+0

Aber wenn ich nur ein Feld (Name) angeben, ist die Anfrage langsam –

+0

Und ich brauche das, weil ich eine Live-Suche durchführen möchte ... –

Antwort

0

Unten ist ein Beispielcode, der ich used.You haben kann und Idee, indem Sie it.If Sie Ihre Daten nur veröffentlichen, wird es auf Ihre Leistung auswirken.

Meteor.publish('AllCustomers', function(search, hoid, options){ 

    // Prepare options 
    options = _.extend({ 
     sort: {name: 1}, 
     skip: 0, 
     limit: 10 
    }, options); 

    let query  = {} 

    if (search) { 
     let regex = new RegExp(search, 'i'); 

     query = { 'headofficeId':hoid, 
     $or: [ 
     { name: regex }, 
     { telNo: regex } 
     ] 
    }; 

    }else{ 
     query = {'headofficeId':hoid}; 
    } 

return Customers.find(query, options); 
}); 
+0

Danke! Und wie gehen Sie mit dem Abonnement auf dem Client um? –

+0

this.subscribe ('AllCustomers' {set parameter here}); –

+0

aber abonnieren Sie jedes Mal, wenn der Benutzer etwas eingibt? –