2016-06-12 9 views
3

私はMeteor.usersコレクションを持っています。ユーザーには、「lastQuestionAnswered」という属性があります。これは、ユーザーが最後に回答した質問のquestionIdです。Meteorコレクションオブジェクトの属性の値を取得する方法

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

(現在のユーザーの)lastQuestionAnswered属性の値を変数に抽出するにはどうすればよいですか?結局私たちが持っているので

Var lastAnsweredQuestionId = ??? 

私はこのサーバー側をやろうとしています。私は関連する質問を見てきましたが、ヒントは見つかりませんでした。あなたの助けを前にありがとう。

+0

私はあなたが必要な正確に何を確認していません達成する。 'lastQuestionAnswered'とはどういう意味ですか?質問ユーザーのIDの何らかの回答がありますか?私たちはすでに「Meteor.users」を持っています。 'User'コレクションは何を保存すると思いますか? – Tdm

+0

申し訳ありませんが、それはMeteor.usersコレクションです。 lastQuestionAnsweredは、ユーザーが最後に回答した質問のquestionIDです。 – janjackson

答えて

2

クライアント側で現在のユーザーを取得するには、Meteor.user()メソッドを使用する必要があります。したがって、コードは次のようになります。

var lastAnsweredQuestionId = Meteor.user().lastQuestionAnswered; 

クライアント側またはサーバー側のメソッド(ユーザーがログインしている場合)で動作します。

UPDATE

あなたは同じ結果を得るために必要がある場合でMeteor.user()は、出版社では動作しませんので、あなたが少し異なるアプローチを必要とする機能を公開:

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

がうまく見えます。私はPublish機能の中でそれを必要とします。 Meteor.userをパブリッシュ関数内で使用することはできません。何かアドバイス? – janjackson

+0

私は答えを更新しました。 – Tdm

+0

なんらかの理由で、まだ動作しません: 'Meteor.publish( 'questions'、function(){ var currentUser = Meteor.users.findOne({_ id:this.userId}); var lastQuestionAnsweredId = currentUser.lastQuestionAnswered ; 返信Questions.find({number:lastQuestionAnsweredId}); }) 'コメントで改行を行う方法がわかりません – janjackson

関連する問題