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