2014-09-01 6 views
0

이미 DB에있는 문서를 복사하고 동일한 값 (물론 _id 및 __v 값 제외)을 가진 새 문서를 만드는 빠른 방법이 있는지 궁금합니다.Mongoosejs를 사용하여 MongoDB 문서 복사

나는 작동하지만 뭔가 발견 한 문서의 각 필드를 새 문서에 할당하는 것과 관련이 있습니다. 모델에서 "필드"의 수가 증가하면 코드를 변경해야하기 때문에 이것은 이상적이지 않습니다.

따라서 두 세트의 서류는 _extend에 넣었지만 원본 문서에 포함 된 _id__v "필드"는 문제가 있습니다.

효율적인 방법에 대한 제안 사항이 있으십니까?

답변

0

당신은이 _id__v 필드없이 객체를 복사 할 _.omit lodash/밑줄 방법을 사용하여 수행 할 수 있습니다

Test.findOne({_id: 123}, function(err, doc) { 
    Test.create(_.omit(doc.toObject(), ['_id', '__v']), callback); 
}); 
+0

흥미로운 -은'_.omit'에 필요한 콜백은? – tommyd456

+0

@ tommyd456'callback'은'생략'이 아닌'create' 호출을위한 것이며, 선택 사항입니다. – JohnnyHK

+0

오 예 - 그 점을 발견하지 못했습니다. 그냥 테스트 해봐. – tommyd456