MongoDB Upsert17 Mar 2025 | 4 分钟阅读 引言在 MongoDB 中,upsert 是一种用于在任何操作中插入和更新值的方法。换句话说,MongoDB upsert 方法是插入和更新的组合(插入 + 更新 = upsert)。默认情况下,upsert 方法的值始终为 false。如果文档与指定的查询匹配,并且该方法的值设置为 true,则更新操作将更新匹配的文档。如果文档与指定的查询不匹配,并且该方法的值设置为 true,则此方法会在集合中插入一个新文档。这个新文档包含指示操作的字段。 语法upsert 选项的值将为 true 或 false。 使用 findAndModify() 函数进行 Upsert用户可以将 upsert 选项与 findAndModify() 函数结合使用。在此函数中,该选项的默认值为 false。如果此选项的值设置为 true,则该函数会执行以下操作之一
语法 例如 在本例中,我们正在使用 ![]() 现在,我们将通过将 upsert 选项设置为 true,在 student 集合中插入一个新文档。 这里,没有数据与名称 "jack" 匹配,因此 findAndModify() 函数会插入一个包含两个字段(即 "name" 和 "address")的新文档,因为 upsert 方法的值设置为 true。 ![]() 使用 update() 函数进行 Upsert您可以将 upsert 选项与 update() 函数结合使用。在此函数中,该选项的默认值为 false。如果此选项的值设置为 true,则该函数会执行以下操作之一
语法 例如 在本例中,我们正在使用 ![]() 现在,我们将通过将 upsert 选项设置为 true,在 student 集合中插入一个新文档。 这里,没有数据与名称 "Noah" 匹配,因此 update() 函数会插入一个包含两个字段(即 "name" 和 "address")的新文档,因为 upsert 方法的值设置为 true。 ![]() 使用运算符表达式进行 Upsert如果文档与给定的数据不匹配,并且 upsert 选项的值设置为 true,则更新操作会从给定查询参数中的相似性子句创建新文档,并应用来自更新参数的表达式。 例如 在本例中,我们正在使用 ![]() 现在,我们将通过将 upsert 选项的值设置为 true,在 Employees 集合中插入一个新文档。 这里,update() 方法使用来自查询条件的字段 "Name : Hnery" 创建一个新文档,然后将 $set 和 $setOnInsert 操作应用于此文档。 ![]() 下一主题MongoDB $and 运算符 |
我们请求您订阅我们的新闻通讯以获取最新更新。