MongoDB findOneAndUpdate-检查新文档是否已添加或刚刚更新

nlejzf6q  于 2022-10-02  发布在  Go
关注(0)|答案(1)|浏览(236)

我有以下代码,用于查找和更新员工商店记录(如果存在,否则将创建一个)。

我在不同的商店有很多员工,他们可以在任何时候选择更换商店(只要地点在美国)

以下是我到目前为止的代码:

employee = await this.employeeStoreModel.findOneAndUpdate(
      { employee: employeeRecord._id, location: "America" },
      {
        employee: employeeRecord._id,
        store: employeeRecord.store,
        location: "America",
      },
      { new: true, upsert: true }
    );

这工作正常,但我试图从这返回一些消息的基础上,是什么是更新的。它可能是以下任何一条消息:

  • 如果添加的是全新的员工商店记录,则返回“{{StoreID}}有新员工-{{EmployeeID}}”
  • 如果是现有员工商店记录上的商店更改,则返回“{{EmployeeID}}已从{{old store ID}}更改为{{new store ID}}”

这有可能做到吗?有没有人能指导我如何开始这项工作?

vtwuwzda

vtwuwzda1#

在选项字段中,

rawResult: true

您必须添加该参数。

结果将如下例所示。

{ response:
     { n: 1,
       updatedExisting: false,
       upserted: 5e6a9e5ec6e44398ae2ac16a },
    value:
     { _id: 5e6a9e5ec6e44398ae2ac16a,
       name: 'Will Riker',
       __v: 0,
       age: 29 },
    ok: 1 }

根据updatdExisting字段中是UPDATE还是INSERT,您可以根据需要返回任何消息。

相关问题