查询并整体更新一条记录。
方法定义
findOneAndUpdate(filter: object, update: object, options?: object): Promise<MongoResult>
请求参数
字段 | 类型 | 必填 | 描述 |
filter | Object | 是 | 数据库操作时的查询条件。 |
update | Object | 是 | 数据库操作时的替换对象。 |
options | Object | 否 | 控制项。 |
options参数定义:
字段 | 类型 | 必填 | 描述 |
options.sort | Object | 否 | 排序规则。 |
options.upsert | Boolean | 否 | 如果查找不到对应文档,是否插入。默认值:false。 |
options.projection | Object | 否 | 查询后过滤的字段。
|
示例
从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);
在文档使用中是否遇到以下问题
更多建议
匿名提交