2016-08-07 2 views
0

나는 각 Trades는이 항목이 종종있는 변화이다Meteor observeChanges(). 실제 변경 사항을 확인하는 방법은 무엇입니까?

TradesSchema = new SimpleSchema({ 
    // ... 
    items: { 
     type: [String] 
    }, 
    // ... 
}); 

Trades.attachSchema(TradesSchema); 

내부 항목의 배열을 가지고이

Trades.find().observeChanges({ 
    changed: function(id, fields) { 
     // do stuff 
    } 
}); 

과 같은 코드를 가지고 있고, 나는 변경 사항을 추적합니다. 코드는 올바르게 작동하지만 fields에서 변경된 항목뿐만 아니라 모든 항목을 반환합니다.

컬렉션의 구조를 변경하지 않고 정확히 어떤 항목이 변경되었는지 확인할 수있는 방법이 있습니까?

+2

것 같습니다. 비교를 위해 당신에게 모두 새로운 오래된 문서를 제공하는 대신에'observe'보십시오. – Season

답변

1

감사합니다. 힌트를 남겨주세요.


observeChanges은 새 값만 제공하므로 새 문서와 이전 문서를 모두 반환하므로 observe을 사용해야합니다. 그렇다면 정확히 무엇이 바뀌 었는지 비교해야합니다. 이는`changed` 항상 새로운 가치를 제공 이후 observeChanges``에 의해 심하게 얻을 수없는 것처럼 ( See docs for observe on meteor.com)

Trades.find().observe({ 
    changed: function(newDocument, oldDocument) { 
     // compare newDocument to oldDocument to find out what has changed 
    } 
}); 
관련 문제