2012-05-07 5 views
4

임베디드 스키마가 포함 된 몽구스 설치가 있습니다. 주석이 삽입 된 Blogpost가 있습니다. 댓글은 편집자/관리자가 아니라 원래 게시자가 수정할 수 있습니다. 덧글 추가/편집 후 전체 블로그 포스트가 저장됩니다.몽구스에는 isDirty 체크가 있습니까?

나는 일부 사용자 지정 몽구스의 '사전'미들웨어가 자동으로 특정 의견에 대한 lasteditdate을 설정 포함 된 주석 스키마에 설정해야합니다.

것은 내가 블로그 게시물에() 저장 호출하기 때문에 '사전'이, 블로그 게시물의 모든 코멘트에라고한다는 것입니다. (다른 이유로 나는 이것을 이렇게 할 필요가있다.) 따라서 마지막으로 저장 한 이후에 (블로그 포스트 전체 저장()의 일부로) 어떤 코멘트가 변경되었는지 (또는 새로운 것인지) 확인할 방법이 필요합니다.

질문 : '사전에 코멘트가 있는지 여부를 확인하는 방법 변경 되었습니까? 분명히 this.isNew을 호출하는 것만으로는 코멘트가 편집 될 수 있기 때문에 충분하지 않습니다 (즉, 새로운 것이 아닙니다).

isDirty 또는 내가 간과하고있는 비슷한 것이 있습니까? 이 문서의 방법 isModified(@STRING)을 사용할 수 있습니다 몽구스에서 버전 3.x

if(doc.isModified()){ 
    // do stuff 
} 

답변

3

당신은 수정 된 게터를 사용할 수 있습니다.

방법에 대한 가장 최근의 문서는 here를 찾을 수 있습니다.

그래서 당신이 할 수있는 doc.isModified와 특정 등록 확인 : 당신은 당신이 그렇게 할 수있는 특정 코멘트를 확인하려면

doc.comments[4].message = "Hi, I've made an edit to my post"; 
// inside pre hook 
if (this.isModified('comments')) { 
    // do something 
} 

를 인수 이후 다음과 같은 표기 this.isModified('comments.0.message')

와 각 코멘트를 통해 당신은 할 수 루프를 수정 구체적으로 어떤 의견을 알고 우리가 이것을 어떻게 사용합니까 this.isModified('comments['+i+']message')

+0

을 실행하는 데 필요한 경우 문자열을 사용합니다? – raju

16

:

+1

어떻게 사용합니까? – raju

5

를 들어

if (doc.modified) { 
    // :) 
} 
관련 문제