整体替换一条记录,并返回替换前的记录。
方法定义
findOneAndReplace(filter: object, replacement: object, options?: object): Promise<MongoResult>
请求参数
字段名 | 类型 | 必填 | 说明 |
---|---|---|---|
| Object | 是 | 数据库操作时的查询条件。 |
| Object | 是 | 数据库操作时的替换对象。 |
| Object | 否 | 控制项。 |
options
参数定义:
字段名 | 类型 | 必填 | 说明 |
---|---|---|---|
| Object | 否 | 排序规则。 |
| Boolean | 否 | 如果查找不到对应文档,是否插入。默认值: |
| Object | 否 | 查询后过滤的字段。 |
| Number | 否 | 执行时间(毫秒),默认值:1000,最大值:3000。 |
示例
从
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);
文档内容是否对您有帮助?