📅  最后修改于: 2023-12-03 15:17:41.759000             🧑  作者: Mango
MongoDB 是一种文档数据库,以 BSON 格式存储数据。在 MongoDB 中,updateOne() 是更新集合中符合条件的第一条文档的方法。
db.collection.updateOne(
<filter>,
<update>,
{
upsert: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ..., <filterdocumentN> ]
}
)
参数说明如下:
{name: 'MongoDB'}
,也可以使用高级查询操作符,如 {age: {$gt: 18}}
。{title: 'MongoDB 教程'}
,也可以使用操作符,如 { $set: {title: 'MongoDB 教程 v2' } }
。updateOne() 方法返回的是一个 UpdateResult 对象,它包含了更新操作的一些基本信息和结果。
UpdateResult 对象的属性说明如下:
以下示例演示了如何使用 updateOne() 方法更新集合中的一条文档。
db.collection('students').updateOne(
{ name: 'Foo' },
{ $set: { age: 20 } }
);
在这个示例中,我们使用了一个普通的查询条件 { name: 'Foo' }
和一个更新操作 $set: { age: 20 }
。这意味着我们将更新集合中符合条件的文档,将 age
字段的值设置为 20
。
更新成功后,updateOne() 方法会返回一个 UpdateResult 对象,并将其赋值给一个变量。
const result = db.collection('students').updateOne(
{ name: 'Foo' },
{ $set: { age: 20 } }
);
我们可以使用这个 UpdateResult 对象来获得更新操作的结果信息。
console.log(`Matched Count: ${result.matchedCount}`);
console.log(`Modified Count: ${result.modifiedCount}`);
if (result.upsertedId) {
console.log(`Upserted ID: ${result.upsertedId}`);
}
这个例子中,我们只更新了一条文档,因此 matchedCount
和 modifiedCount
的值都为 1
。该示例中不使用 upsert 参数、writeConcern 参数和 collation 参数,因此结果中不包含这些信息。
updateOne() 方法是 MongoDB 中一个常用的更新操作方法。在使用它时,我们需要提供查询条件和更新操作,并可以选择使用 upsert 参数、writeConcern 参数或 collation 参数。
使用 UpdateResult 对象,我们可以获得更新操作的结果信息,例如符合查询条件的文档数量、实际更新的文档数量和新插入文档的 _id。