pymongo插入数据时更新和不更新的使用

本文详细解析了MongoDB中update的setOnInsert与set用法区别,以及insert操作的特性。setOnInsert用于条件性插入,仅在文档不存在时执行;set则无论文档是否存在都会进行更新或插入。最后讨论了insert直接插入可能引发的数据重复问题。

(1)update的setOnInsert

当该key不存在的时候执行插入操作,当存在的时候则不管,可以使用setOnInsert

db.test.update({'_id': 'id'}, {'$setOnInsert': {'a': 'a'}, true)

当id存在的时候,忽略setOnInsert。

(2)update的set

当key不存在的时候执行插入操作,当存在的时候更新除key以外的set内的值

db.test.update({'_id': 'id'}, {'$set': {'b': 'b'}}, true)

当id存在的时候,如果要插入,则插入{'a': 'a'}

最后的参数true,则是指明,当update不存在的_id时,执行插入操作。默认是false,只更新,不插入。

(3)insert

insert是直接将内容插入数据库,这样会造成重复插入数据。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值