当update的查询条件是数组的时候,upsert会失效

不管是findOneAndUpdate还是update方法,只要他们的查询条件是数组,upsert就会失效,比如:

//这段代码只会更新已存在的数据,不存在的不会插入
tagModel.update({name:{$in:oldTags}},{$inc:{total:1}},{multi:true,upsert:true},function(err){
        if(err) return console.log(err)
})

//只有根据具体的字段值查询时upsert才会生效
tagModel.update({name:'kevin'},{$inc:{total:1}},{multi:true,upsert:true},function(err){
        if(err) return console.log(err)
})
原文地址:https://www.cnblogs.com/toward-the-sun/p/6804916.html