출처 : https://mongoosejs.com/docs/tutorials/findoneandupdate.html
북마크 기능에서 findOneAndUpdate를 사용하는데 업데이트된 문서가 반환되는게 아니라 업데이트 하기 전에 find한 문서를 반환했다. 몽구스 문서를 보니
이름에서 알 수 있듯이 지정된 , , 적용 및 findOneAndUpdate()문서와 일치하는 첫 번째 문서를 찾아 반환합니다. 기본적으로 문서 가 적용 되기 전의 상태로 반환 됩니다.filterupdatefindOneAndUpdate() update
이렇다고 한다.
적용된 문서를 반환하고 싶을 때는
적용된 후 문서를 반환하는 new옵션을 설정해야 합니다 .true update
const filter = { name: 'Jean-Luc Picard' };
const update = { age: 59 };
// `doc` is the document _after_ `update` was applied because of
// `new: true`
let doc = await Character.findOneAndUpdate(filter, update, {
new: true
});
doc.name; // 'Jean-Luc Picard'
doc.age; // 59
find로 찾은 문서만 반환
const result = await Post.findOneAndUpdate(
{ postId: postId },
{ $push: { userBookmark: { _id: userId._id } } }
);
업데이트 적용된 문서 반환하고 싶을 때
const result = await Post.findOneAndUpdate(
{ postId: postId },
{ $push: { userBookmark: { _id: userId._id } } },
{ new: true }
);
갈길이 멀구만..