我需要从mongoDB数组中删除特定对象。

应该删除红色多维数据集内的上述信息,但(0:对象)

javascript - 从数组MongoDB中删除对象-LMLPHP

我尝试了下面的显示方式,但是没有用。
而且我需要删除整个对象,但是不能直接在查询中传递值,因此我需要从mongoDB中获取信息并将其删除。

router.post("/deleteArquive/:id", ensureAuthenticated, (req, res) => {
  var id = mongoose.Types.ObjectId(req.params.id);
  House.update(
    { "expensesHouse._id": id },
    {
      $pull: {
        expensesHouse: {
          status: "expensesHouse.status",
          _id: "expensesHouse._id",
          expenseType: "expensesHouse.expenseType"
        }
      }
    }
  ).then(house => {
    if (house.userID !== req.user.id) {
      res.redirect("/houses/houses");
    } else {
      req.flash("success_msg", "House removed!");
      res.redirect("/houses/houses");
    }
  });
});

最佳答案

如果我正确理解了需求,则应该执行以下操作:

House.update(
  { "expensesHouse._id": id },
  {
    $pull: {
      expensesHouse: {
        _id: id
      }
    }
  }
)

07-22 23:18