2012-11-04 4 views
2

upsert 후 레코드 _id를 가져 오는 방법이 있습니까?몽구스 : upsert 후 doc _id를 얻으십시오

이 게시물 (How to insert a doc into mongodb using mongoose and get the generated id?)을 보았습니다.하지만 이는 삽입이 아닌 업데이트에만 적용됩니다. 당신이 getlasterror (https://groups.google.com/forum/?fromgroups=#!topic/mongoose-orm/ehZ11QY-OUw)를 사용하여 _id를 얻을 사용할 수 있지만, 몽구스가에 (https://groups.google.com/forum/?fromgroups=#!topic/mongoose-orm/pSv6WrasvWg)

감사

를 액세스를 제공하지 않는 MongoDB의를 사용하여 또한

,

답변

10

에서 upsert: true에 사용 몽구스의 findOneAndUpdate 방법 옵션 개체. 옵션에 진실 : 당신이 * 업데이트 * 문서를 반환하고 존재하지 않는 경우와 * 새 * 문서를 upserted하고 싶은 경우에, 당신은 새로운 추가 할 것

var query = { name: 'borne' }, 
    data = { name: 'jason borne' }, 
    options = { upsert: true }; 
Model.findOneAndUpdate(query, data, options, function (err, object) { 
    /* use object._id */ 
}); 
+4

주 options = {upsert : true, new : true}; – JamieL