首页 > 解决方案 > 无法使用猫鼬从对象数组中删除元素

问题描述

我正在尝试从 MongoDB 中的对象数组中删除一个元素。

请在下面找到架构结构。

在此处输入图像描述

我只想通过status,ideaID和删除一个对象invitedBy。请找到我正在使用的查询,

    await User.findByIdAndUpdate(
    currentUser,
    { $pull: { "invitationStatus.ideaId": this.req.body.ideaId, "invitationStatus.status": "pending", "invitationStatus.invitedBy": getUserByNotificationId.createdBy._id } })

但此查询并未删除指定的对象。

标签: javascriptnode.jsmongodbmongoose

解决方案


您必须指定要从哪个字段中提取项目。像这样更改您的查询:

await User.findByIdAndUpdate(currentUser, { 
  $pull: { 
    invitationStatus: {
      ideaId: this.req.body.ideaId,
      status: "pending", 
      invitedBy: getUserByNotificationId.createdBy._id 
    }
  } 
})

推荐阅读