知道mongodb可以透過設定update的第三個參數為true來實現沒有資料時插入,有資料時更新。
那使用mongoose封裝的update方法如何傳入這個參數呢?
mongoose的文檔中提供的是update(doc, options, callback)這三個參數
仅有的幸福2017-05-02 09:26:06
http://mongoosejs.com/docs/ap...
MyModel.update({ name: 'Tobi' }, { ferret: true }, { upsert: true }, function (err, raw) {
if (err) return handleError(err);
console.log('The來自Mongo 的原始回應是', raw);
});
巴扎黑2017-05-02 09:26:06
將update方法第3個參數的upsert屬性設為true即可
Book.update(
// 查询
{
name: "The Kite Runner"
},
// 更新
{
auther: "Khaled Hosseini"
},
// 其他参数
{
upsert: true,
}, function(err, doc)
{
if (err) console.log(err);
console.log(doc);
});
當資料庫中存在The Kite Runner時,更新文件的auther屬性;
當資料庫中沒有The Kite Runner時,插入The Kite Runner文件;