UpdateOne返回mongoose对象而不是文档

UpdateOne返回mongoose对象而不是文档,mongoose,Mongoose,运行此查询时: const project = await models.Projects .updateOne( { _id: projectId }, { $addToSet: { membersIds: { $each: membersIds }, }, }, ); 我得到的答复如下: { n: 1,

运行此查询时:

  const project = await models.Projects
    .updateOne(
      { _id: projectId },
      {
        $addToSet:
        {
          membersIds:
          {
            $each: membersIds
          },
        },
      },
    );
我得到的答复如下:

{ n: 1, nModified: 1, ok: 1 }
是否可以获取更新的对象而不是此mongoose数据?

从:
[callback]«Function»参数是(error,writeOpResult)
,这意味着无法使用
updateOne
方法返回文档


但是,可以使用提供的
lean:true
选项来代替
updateOne
,如果在更新操作后不使用文档,则应使用updateOne,速度更快。然而;如果需要更新文档,则应使用或。您可以只使用_id和findbyiandupdate进行筛选,但可以使用每个现有字段和findOneAndUpdate进行筛选

注意

我看到了响应,它们都是正确的,但是,请注意添加新建选项,并将其设置为true以获取新的更新文档,否则它将在更新之前返回文档:

    models.Projects.findByIdAndUpdate(
    { "_id": projectId }, 
    { $addToSet:{ membersIds: { $each: membersIds }}})
   .exec()
   .then((response) => {
          console.log('document before updating =>', response);
        });

    models.Projects.findByIdAndUpdate(
        { "_id": projectId }, 
        { $addToSet:{ membersIds: { $each: membersIds }}}, 
        {new: true})
       .exec()
       .then((response) => {
              console.log('document after updating =>', response);
            });