2016-06-12 13 views
3

Ich habe die Sammlung Meteor.users. Benutzer haben ein Attribut namens "lastQuestionAnswered", das ist die questionId der letzten Frage, die der Benutzer beantwortet hat.Meteor, wie man den Wert eines Attributs eines Sammlungsobjekts abruft

{ "_id" : "jrCJiuo7eprNFKfLG", 
"name" : "Elon Musk", 
"lastQuestionAnswered" : 1 } 

Wie extrahiere ich den Wert des lastQuestionAnswered Attribut (des aktuellen Benutzers) in eine Variable? Am Ende haben wir

Var lastAnsweredQuestionId = ??? 

Ich versuche, diese Server-Seite zu tun. Ich habe verwandte Fragen angeschaut, konnte aber keine Hinweise finden. Vielen Dank im Voraus für Ihre Hilfe.

+0

Ich bin nicht sicher, was genau Sie brauchen erreichen. Was bedeutet 'lastQuestionAnswered'? Ist eine Art ID der Frage, die der Nutzer beantwortet hat? Wir haben bereits 'Meteor.users'. Was soll die Sammlung "User" speichern? – Tdm

+0

Entschuldigung, es ist die Meteor.users-Sammlung. und lastQuestionAnswered ist nur die Frage-ID der letzten Frage, die der Benutzer beantwortet hat. – janjackson

Antwort

2

Um aktuelle Benutzer auf Client-Seite zu erhalten, müssen Sie Meteor.user() Methode verwenden. So wird Ihr Code wie folgt aussehen:

var lastAnsweredQuestionId = Meteor.user().lastQuestionAnswered; 

Es ist auf Client-Seite oder in Methoden, die auf Server-Seite arbeiten wird (wenn Benutzer angemeldet ist).

UPDATE

Wenn Sie Funktion gleiche Ergebnis in veröffentlichen bekommen müssen benötigen Sie ein bisschen anders Ansatz, weil Meteor.user() nicht in Publisher funktioniert:

var currentUser = Meteor.users.findOne({_id: this.userId}); 
var lastAnsweredQuestionId = currentUser.lastQuestionAnswered; 
+0

sieht gut aus. Ich brauche es in einer Publish-Funktion. Es besagt, dass ich Meteor.user nicht in einer Veröffentlichungsfunktion verwenden kann. Irgendein Rat? – janjackson

+0

Ich aktualisierte die Antwort. – Tdm

+0

Aus irgendeinem Grund funktioniert es immer noch nicht: 'Meteor.publish ('questions', function() { var currentUser = Meteor.users.findOne ({_id: this.userId}); var lastQuestionAnsweredId = currentUser.lastQuestionAnswered ; return Questions.find ({number: lastQuestionAnsweredId}); }); 'Tut mir leid, ich weiß nicht, wie man Zeilenumbrüche in Kommentaren macht – janjackson

Verwandte Themen