1

我正在更新projects集合中的文档。如下所示:

项目集合

"_id" : ObjectId("5c2df5ccfb98b328c470597b"),
"clientName" : "abc",
"attachments" : [],
"status" : "ongoing",
"assignId" : ObjectId("5c2df3c3fb98b328c4705979"),
"upworkId" : ObjectId("5c2df956b84e902678f416fa")

现在,我从客户端获取upworkId字段 null 或空,但是获取clientName,status和的新值attachments。所以我想删除该字段并更新项目集合upworkId中的其他字段值。我怎样才能?

我当前的更新查询是:

Project.findByIdAndUpdate(req.params.id, req.body)
  .then((project) => {
    if (!project)
      res.status(400).json({message: MESSAGE.PROJECT_NOT_FOUND});
    else 
      res.status(302).json({message: MESSAGE.PROJECT_UPDATED_SUCCESS});
})

注意:我需要从特定文档的集合中删除该字段,我不想从对象中删除该字段。

4

1 回答 1

0
Project.findByIdAndUpdate(req.params.id, req.body)
  .then((project) => {
    if (project.length<0)
     then use $unset. Project.findByIdAndUpdate(req.params.id, { $set: req.body, $unset: { upworkId: '' } })
      console.log(result)
    else
 res.send('update sucessfully ')
      })
于 2019-01-04T06:25:11.080 回答