2017-06-03 6 views
0

データフローに問題があります。私は流星と反応を使用しています。私はしたい何リアクション・メテオ:ifOnOnOn()が条件として機能しない

は、このようなものです:

何かを作るちょうど「はい/いいえ」の値をインクリメントしないと同じ「国」と「question_id」のレコードが存在する場合。それ以外の場合は、新しいレコードを作成し、「はい/いいえ」の値をインクリメントします。

ただし、レコードが既に存在する場合でも、毎回新しいレコードが作成されます。私は "country"と "question_id"が定義されていることを確認しました。これは、同じ国とquestion_idを持つレコードを作成するはずではありませんか?私はいくつかの行は、データが準備が整う前に実行されると思います.....どのようにコードを段階的に進めることができますか?それとも他の問題がありますか?あなたが私に何か手がかりを与えるなら、本当に感謝します。ありがとうございました。

handleAlternate(event){ 
    event.preventDefault(); 
    this.dataInsert(false); 
    } 

    handleSubmit(event) { 
    event.preventDefault(); 
    this.dataInsert(true); 
    } 

    dataInsert(yesflag){ 
    const country = ReactDOM.findDOMNode(this.refs.textInput).value.trim(); 
    const id = this.props.match.params.id; 
    if(Answers.findOne({country: country, question_id: id}) == null){//Why is this always true? 
     Answers.insert({ 
     country, 
     question_id: id, 
     yes: 0, 
     no: 0, 
     createdAt: new Date(), 
     }); 
    } 
    const doc = Answers.findOne({country: country, question_id: id}); 
    console.log(Answers.findOne({country: country, question_id: id})); 
    if(yesflag == true){ 
     Answers.update({_id: doc._id}, 
     { $inc: {yes: 1}}); 
    }else{ 
     Answers.update({_id: doc._id}, 
     { $inc: {no: 1}}); 
    } 

    ReactDOM.findDOMNode(this.refs.textInput).value = ''; 
    } 
+0

の下にあなたがにconsole.log(Answers.findOneを({行うことができますように、あなただけ行う必要がありますcountry:country、question_id:id})) "const id = ..."の行の後に何が印刷されるのか教えてください。 –

+0

@JohnSmith 「未定義」と表示されます。しかし、このコードで定義されているcountryとidのシェルでfindOne()を入力すると(console.logでチェックした)、正しいレコードを返します。 –

+0

レコードがデータベースに存在することは疑いありません。あなたのパブリケーション/サブスクリプションが正しく行われていない可能性が高くなります。 –

答えて

0

Collection.findOne()セレクタに一致する最初のドキュメントを、並べ替えとスキップオプションの順に検索します。一致する文書が見つからない場合はundefinedを返します。

let answer = Answers.findOne({country: country, question_id: id}; 
if(!answer){} 

または

let totalAnswers = Answers.find({country: country, question_id: id}).count(); 
if(totalAnswers == 0) {} 
詳細なドキュメントについて

CLICK HERE

関連する問題