全部产品

findOneAndReplace

更新时间:2020-12-23 18:19

整体替换一条记录,并返回替换前的记录。

方法定义

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);