$setOnInsert

在本页面

Definition

您可以为db.collection.update()db.collection.findAndModify()方法指定upsert选项。

db.collection.update(
   <query>,
   { $setOnInsert: { <field1>: <value1>, ... } },
   { upsert: true }
)

要在嵌入式文档或数组中指定<field>,请使用dot notation

Example

名为products的集合不包含任何文档。

然后,以下db.collection.update()upsert: true插入一个新文档。

db.products.update(
  { _id: 1 },
  {
     $set: { item: "apple" },
     $setOnInsert: { defaultQty: 100 }
  },
  { upsert: true }
)

MongoDB 从<query>条件创建一个_id等于1的新文档,然后将$set$setOnInsert操作应用于此文档。

products集合包含新插入的文档:

{ "_id" : 1, "item" : "apple", "defaultQty" : 100 }

如果db.collection.update()upsert: true找到了匹配的文档,则 MongoDB 会执行更新,应用$set操作,但忽略$setOnInsert操作。

首页