2017-07-27 13 views
0

私はオブジェクトの配列を含むコレクションを持っています。スキーマは以下のようになります。

Boards.attachSchema(new SimpleSchema({ 
    [...] 
    'members.$.userId': { 
    type: String, 
    }, 
    'members.$.isActive': { 
    type: Boolean, 
    }, 
    [...] 

今私は更新が基板の一方の部材に発生した場合、正しく発射し、収集フックafter.updateを持っています。

私の場合、isActiveのみがメンバーのために変更された場合、そのメンバーのメンバー(またはメンバーのuserId)を取得するにはどうすればいいでしょうか?その場合、修飾子は次のようになります。

{"$set":{"members.1.isActive":true,"modifiedAt":"2017-07-27T15:40:19.733Z"}} 

私はメンバーを見つけることができるようにフィールド名を分割する必要がありますか?

どのように私も(「体を活性化した」)は、このような状況を検出することができますか?

答えて

1

According to Aldeedthis.docId必要がありますサービスで利用できるエル。

matb33:meteor-collection-hooksパッケージが便利な場合もあります。基本的にデータベーストリガーを作成することができます。

+0

コレクションフックの他のパッケージがあるかどうかわかりませんが、上記の "collection hook after.update"は、matb33:meteor-collection-hooksパッケージのフックにすぎません。 –

+1

ああ、私は疑問を誤解していました。私はあなたのスキーマコード自体に 'memberId'を入れようとしていると思っていました(例えば' autoValue')。 'after.update()'では、ドキュメントそのものを2番目のパラメータとして利用できます。あなたは 'doc.members.1.userId'を見ることができます。スキーマの 'autoValue'コードでこれを行う方が簡単です。 –

関連する問題