2017-02-13 60 views
0

我正在嘗試使用貓鼬中的$ set更新文檔,但只希望在文檔存在的情況下使用set。否則,我希望它創建一個新文檔。問題是我需要添加整個文檔,而不僅僅是$集中提到的字段。這可能在一個查詢與貓鼬?

+0

代碼示例: bulk.find({_ ID:ID})。更新({$設置是:{title: '富巴'}} ).upsert(newDoc)??? – stu6188

回答

0

您可以upsert:true選項使用findOneAndUpdate做到這一點:

MyModel.findOneAndUpdate(query, {$set: {.....}}, { upsert:true }, function(err, doc){ 
    if (err){ 
     return res.send(500, { error: err }) 
    }; 
    return res.send("succesfully saved"); 
}); 
+0

不要認爲這有幫助,因爲如果文檔不存在,我需要插入整個文檔。在這種情況下,它會使用置入$ set – stu6188

+0

中的值進行插入,但可以將'complete_set'傳遞給完整的對象。 – giankotarola