31
본문에 데이터 및 _id가 포함되어있는 요청을했습니다.Mongoose.js : 생성 또는 업데이트를 구현하는 방법은 무엇입니까?
_id가있는 레코드가 존재하고 아무 것도 없다면 업데이트 할 코드를 구현하는 더 좋은 방법은 무엇입니까? 내 코드 :
저는이 방법이 더 좋을지도 모릅니다.
본문에 데이터 및 _id가 포함되어있는 요청을했습니다.Mongoose.js : 생성 또는 업데이트를 구현하는 방법은 무엇입니까?
_id가있는 레코드가 존재하고 아무 것도 없다면 업데이트 할 코드를 구현하는 더 좋은 방법은 무엇입니까? 내 코드 :
저는이 방법이 더 좋을지도 모릅니다.
는 단일 upsert으로 그 작업을 수행 할 수 있습니다
var obj = req.body;
var id = obj._id;
delete obj._id;
if (id) {
Model.update({_id: id}, obj, {upsert: true}, function (err) {...});
}
주의해야 할 점은 모델의 기본값 및 미들웨어는 (있는 경우)을 적용 할 수없는 것입니다.
몽구스 4.x의 업데이트
upsert 새 문서를 작성하는 경우, 당신은 이제 기본값을 적용 할 setDefaultOnInsert
옵션을 사용할 수 있습니다.
Model.update({_id: id}, obj, {upsert: true, setDefaultsOnInsert: true}, cb);
문제는 "OBJ"_id를 포함하고, 갱신의 경우에 나는 그것을 전에 업데이트를 제거 할 필요가 아니면 오류 – WHITECOLOR
@WHITECOLOR 좋은 점 "허용되지 _id에 모"를 얻는다. 'update' 전에 제거하도록 코드를 업데이트했습니다. – JohnnyHK
문질러가 있습니다. 나는 새로 생성 된 (존재하지 않는다면) Item이 obj._id와 동일한 _id를 가지길 원한다. 생성하기 전에 obj에서 _id를 제거하려면 mongo가 새로운 _id를 생성 할 것이다. – WHITECOLOR