2013-02-27 91 views
31

我想在貓鼬中使用'findOneAndUpdate'並且我發送的更新的JS對象沒有被保存到mongo。保存時我沒有收到錯誤,但是我確實收到了更新對象的空值。任何想法我可能做錯了什麼?這是一個例子,試圖更新整個對象,存儲在mongo中,即覆蓋名稱對象。貓鼬findOneAndUpdate不工作

var query = {"_id": id}; 
var update = {name: {first: 'john', last: 'smith'}}; 
var options = {new: true}; 
People.findOneAndUpdate(query, update, options, function(err, person) { 
    if (err) { 
    console.log('got an error'); 
    } 

    // at this point person is null. 
}); 

回答

26

原來,我搜索的id不存在,因此返回null。按預期工作!

+0

請將您的答案標記爲已接受。 – verybadalloc 2013-08-04 04:51:08

+1

顯然,如果您的文檔有更多的字段,它們都會被刪除。我敢肯定,這是可以避免的東西,儘管 – 2014-04-23 21:19:51

+7

@SergioMajluf你可以使用$ set來更新只需要的字段。 – Haywire 2014-10-27 12:43:55