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

Posted 向着太阳生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当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)
})

 

以上是关于当update的查询条件是数组的时候,upsert会失效的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB快速入门学习笔记5 MongoDB的文档修改操作

mongoDB数据更新与操作符

Mongodb数据更新命令操作符

MongoDB数据update的坑

MongoDB 的 upsert

Mongodb数据更新命令(updatesave)