upsert:true:如果要更新的文档不存在的话会插入一条新的记录
$setOnInsert操作符会将指定的值赋值给指定的字段,如果要更新的文档存在那么$setOnInsert操作符不做任何处理;
使用:
db.collection.update(
<query>,
{$setOnInsert:{<field1>:<value1>,......}},
{upsert:true}
)
实例:
db.products.update(
{_id: 1},
{
$set:{item:"apple"},
$setOnInsert:{defaultQty:100}
},
{upsert:true}
)
注意:$set和$setOnIsert 不能对同一字段使用