$setOnInsert
¶如果使用upsert:true进行更新操作会
导致插入文档,然后$setOnInsert
将指定的值分配给文档中的字段。如果更新操作未导致插入,则不
$setOnInsert
执行任何操作。
您可以upsert
为db.collection.update()
或
db.collection.findAndModify()
方法指定选项
。
要<field>
在嵌入式文档或数组中指定,请使用
点符号。
名为的集合products
不包含任何文档。
然后,db.collection.update()
使用upsert:true插入以下内容:新文档。
MongoDB中创建了一个新的文档_id
等于1
从
<query>
状态,然后应用$set
和
$setOnInsert
操作这个文件。
该products
集合包含新插入的文档:
如果db.collection.update()
用UPSERT:真正找到了一个匹配的文件,然后MongoDB的执行更新,应用$set
操作,但是忽略了$setOnInsert
操作。