upsert: 更新插入

 顾名思义就是更新插入的意思。常规的update其语义:如果找到符合条件的文档就会更新满足匹配条件的文档,如果找不到就不更新。而加上upsert之后其语义为:如果找到满足条件的文档就更新之,如果没找到就创建之。相当于说我们不必预先创建对应的数据,同一套代码既可以用于创建文档又可以更新文档。

测试如下:

#集合没有满足条件的数据,执行普通update;
db.collection_330.update({time:1500000009},{$set:{weight:"100kg"}});
#查询并没有目标数据
db.collection_330.find({time:1500000009});


#执行upsert(更新插入)
db.collection_330.update({time:1500000009},{$set:{weight:"100kg"}}, true);
#果然就插入了这条数据
db.collection_330.find({time:1500000009});
{ "_id" : ObjectId("63415f01da2d91f443a024cd"), "time" : 1500000009, "weight" : "100kg" }

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐