方法定义
findOneAndUpdate(filter: object, update: object, options?: object): Promise<MongoResult>
请求参数
字段名
|
类型
|
是否必选
|
说明
|
filter
|
Object
|
是
|
数据库操作时的查询条件。
|
update
|
Object
|
是
|
数据库操作时的替换对象。
|
options
|
Object
|
否
|
控制项。
|
options
参数定义:
字段名
|
类型
|
是否必选
|
说明
|
sort
|
Object
|
否
|
排序规则。
|
upsert
|
Boolean
|
否
|
如果查找不到对应文档,是否插入。默认值:
false
。
|
projection
|
Object
|
否
|
查询后过滤的字段
|
|
|
|
是否返回修改后对象取值
-
true
:表示返回更新后的文档。
-
false
(默认):表示返回更新前的文档。
|
maxTimeMS
|
Number
|
否
|
执行时间(毫秒),默认值:1000,最大值:3000。
|
示例
-
从
clubs
集合中查找
score
字段值大于20000的第一条记录,并将其
team
字段设置为Therapeutic Hamsters,
score
字段设置为22250,其他字段保持不变。
mpserverless.db.collection('clubs').findOneAndUpdate({
score: { $gt: 20000 }
$set:
team: "Therapeutic Hamsters",
score: 22250,
.then(res => {})
.catch(console.error);
-
在
users
集合中查找
age
字段值大于18的按照姓名升序排列的第一条记录,返回该记录的
name
字段(
_id
字段也会返回)。同时将该记录的
name
和
age
字段更新,其他字段默认保留。若没有找到符合条件的记录,就将
{ name: "Smith",age: 22 }
作为新记录插入。
mpserverless.db.collection("users").findOneAndUpdate({
age: { $gt: 18 }
$set:
name: "Smith",
age: 22,
projection: { name: 1 },
sort: { name: 1 },
upsert: true,
.then(res => {})
.catch(console.error);