$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操作。