整体替换一条记录,并返回替换前的记录。
方法定义
findOneAndReplace(filter: object, replacement: object, options?: object): Promise<MongoResult>
请求参数
字段 | 类型 | 必填 | 描述 |
filter | Object | 是 | 数据库操作时的查询条件。 |
replacement | 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") .findOneAndReplace({ "score": { $gt: 20000 } }, { "team": "Therapeutic Hamsters", "score": 22250 }) .then(res => {}) .catch(console.error);
在users集合中查找age字段值大于18的按照姓名升序排列的第一条记录,返回该记录的name字段(_id字段也会返回)。同时将该记录修改为
{name: "Smith",age: 22}
。若没有找到符合条件的记录,就将{name: "Smith",age: 22}
作为新记录插入。mpserverless.db.collection("users").findOneAndReplace({ age: {$gt: 18} }, { name: "Smith", age: 22, }, { projection: {name: 1}, sort: {name: 1}, upsert: true, }) .then(res => {}) .catch(console.error);