sql >> データベース >  >> NoSQL >> MongoDB

Meteor / MongoDBでデータを操作するときに何が間違っていますか?

    テンプレートヘルパーはリアクティブです。つまり、アプリの状態が変化したり、新しいデータが表示されたりすると、テンプレートヘルパーは自動的に更新されます。あなたの場合、ヘルパーはテンプレートがレンダリングされた直後、Meteor.usersの前に呼び出されます コレクションがいっぱいです。したがって、.findOne() メソッドは未定義を返します。新しいデータが到着した後、2回目のパスで修正されます。

    ここでの簡単な修正は、データがヘルパー内に存在するかどうかを確認することです。

    myClub: function(){
      var currenUserId = Meteor.userId();
      var user = Meteor.users.findOne({_id: currenUserId});
      if(!user) return 'NO DATA';
      return user.role;
    },
    

    実際には、テンプレートをレンダリングする前に、基本データがロードされるのを待つことをお勧めします。これは通常、コントローラーレベルで行われます。



    1. Dockerコンテナで実行されているmongoDBに接続できません

    2. Rubyコードからmongodbに接続するにはどうすればよいですか?

    3. $inと$またはを使用したMongoDBでのクエリの最適化された方法

    4. ノードRedisの保護