2016-03-19 8 views
0

この流星コードは、クライアントが流星法を呼び出す。その後、サーバーでは、コレクションActiveTaskColに文書を挿入しようとします。
observeChangesの設定で、ドキュメントが挿入されたときにconsole.log(fieldName)がオブザーバのadded:プロパティで起動されるようにします。文書のサーバ関数呼び出しが変更を観察する

なぜこのサーバーエラーが発生しているのですか?

答えて

1

ActiveTaskCol = new Mongo.Collection('activeTaskCol'); 
 
ActiveTaskCol.before.insert(function (userId, doc) { 
 
    doc.userId = Meteor.userId(); 
 
    doc.createdAt = Date.now(); 
 
}); 
 
var activeTaskQuery = ActiveTaskCol.find({},{limit: 1, sort: -1}); 
 
var activeTaskHandle = activeTaskQuery.observeChanges({ 
 
    added: function (id, action) { 
 
    console.log(action); 
 
    } 
 
});

Error: Match error: Failed Match.OneOf or Match.Optional validation

おかげ

は、私はこの問題は、ソート構文であるかもしれないと思います。たぶん var activeTaskQuery = ActiveTaskCol.find({},{limit: 1, sort: {createdAt:-1}});


を試してみたが、これはminimongoで実装されていないので、次の行がクライアントに失敗しますが、これはあなたがやりたいかもしれませんが判明:

var activeTaskQuery = ActiveTaskCol.find({}); 

var activeTaskHandle = activeTaskQuery.observeChanges({ 
    addedBefore: function (id, action) { 
    console.log(action); 
    } 
}; 
+0

あなたのソリューションは、コンソールのエラーを与えます:キャッチされていないエラー:スキップまたはリミットでオーダードオブザーバを使用する必要があります(つまり、 'added'の代わりに 'addedBefore')。 –

+0

面白いです。私はそれを試したときに私は得られなかった。どのような流星のバージョンを使用していますか? – Alex028502

+0

私は流星バージョン1.2.1を実行しています –

関連する問題