当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)
})

 

posted @ 2017-05-04 00:15  向着太阳生  阅读(371)  评论(0编辑  收藏  举报