(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是直接将内容插入数据库,这样会造成重复插入数据。

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

被折叠的 条评论
为什么被折叠?



