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

Meteor:Tracker.autorun/observeChangesとコレクションが期待どおりに機能しない

    問題が発生したようですが、考えられる解決策に取り掛かりましょう。

    Meteorバージョン1.1

    新しい流星バージョン1.1を使用している場合 (meteor --versionの実行を確認できます )

    これを使用してください。

    最初にonCreated 関数はこれを使用します。

    Template.progressBar.onCreated(function () {
      var self = this;
    
      self.autorun(function () {
        self.subscribe("Progress");
      });
    });
    

    subsetReady の詳細をご覧ください DOCSで。今度はHTMLで このように使用してください。

    <template name="progress">
      {{#if Template.subscriptionsReady}}
          <div id="progress-bar" style="width:{{curValue}}; background-color:*dynamicColor*;"></div>
        {{else}}
           {{> spinner}} <!-- or whatever you have to put on the loading -->
       {{/if}}
    </template>
    

    1.0.4未満の流星

    waitOn:function(){}のようなものをルーター上に置くことができます

    waitOn:function(){
      Meteor.subscribe("Progress");
    }
    

    または ヘルパーは非同期であるため、次のようなことを行います(お勧めしません)。

    Template.progressBar.helpers({
      curValue: function () {
        query = Progress.findOne({user: Meteor.userId()}).curValue;
        if(query != undefined){
          return query;
        }else{
         console.log("collection isn't ready")
        }
      }
    });
    



    1. 'process.nextTick(function(){throw err;})'-未定義は関数ではありません(mongodb / mongoose)

    2. mongoのスパースインデックスとnull値

    3. データベース内のユーザーから情報を取得する

    4. mongodumpがインデックスをバックアップしないのはなぜですか?