2016-08-06 7 views
0

Mit Meteor einfach Sucht ich einen Index auf meiner Benutzersammlung:Meteor: easy-Suche erste Abfrage gibt leere

UserIndex = new EasySearch.Index({ 
    collection: Meteor.users, 
    fields: ['username', 'realname', 'bio', 'email'], 
    engine: new EasySearch.MongoDB(), 
}); 

Und eine Abfrage in meinem Klienten:

var userResults = UserIndex.search(input).fetch(); 

Das erste Mal Ich hole für eine Eingabe, der Index kehrt leer zurück, beim zweiten Mal funktioniert es normal. Es funktioniert so, wenn ich die Eingaben ändere: das erste Mal leer, das zweite Mal ok. Ich habe keine Ahnung, warum es sich so verhält ... Irgendeine Idee?

Antwort

1

Sie müssen Zeit für die Veröffentlichung Ihrer Suchergebnisse auf dem Client angeben. Führen Sie Ihre Suche in einem Tracker.autorun Einwickeln, wie:

Tracker.autorun(() => { 
    let userResults = UserIndex.search(input).fetch(); 
    console.log(userResults); 
}); 

beobachten die protokollierten Ergebnisse nach einer Suche zu machen; Sie beginnen leer, aber wenn die Ergebnisse auf dem Client veröffentlicht werden, werden die richtigen Ergebnisse protokolliert.