不管是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)
})