2013-10-11 3 views
0

다른 문서에서 채워진 쿼리 된 문서가 있습니다. 내 질문은 참조 된 문서를 업데이트 할 수 있는지 여부 또는 ID 필드를 사용하여 다른 문서에 대한 새 쿼리를 만들어야합니다.MongoDB - 참조 필드 업데이트

예 (mongoosejs 코드) :

Users.findById(id).populate('library.id', null, 'BookModel').exec(function(err, user) 
    user.library.id.loc.coordinates = [40, 20]; 
    user.save(); 
}); 

답변

1

populate의 문서에 명시된 바와 같이이 :

문서는 희박하지 않는 한 완벽하게 작동 될 쿼리 인구에서 이동식, 저장 기능 제공 문서를 반환 옵션이 지정됩니다. 을 하위 문서와 혼동하지 마십시오. 배열을 제거하는 것이 아니라 데이터베이스에서 제거 할 것이므로 제거 방법을 호출 할 때는주의해야합니다.

그래서 그래, 당신은 참조 채워 문서를 직접 수정하고 변경 사항을 커밋 그들에 save를 호출 할 수 있습니다. 그러나 참조 할 문서에서 save으로 전화해야합니다.

Users.findById(id).populate('library.id', null, 'BookModel').exec(function(err, user) 
    user.library.id.loc.coordinates = [40, 20]; 
    user.library.id.save(); 
}); 
+0

나는 어디에서나 검색했지만 어떤 이유로 그 단락을 비틀 거리지 않았습니다. 그리고 아직도 나는 구하는 법을 모른다. 고마워요 :) – Damell

관련 문제