如何使用猫鼬和节点从数组中删除对象?

时间:2020-06-07 17:21:37

标签: node.js mongodb express mongoose backend

如何从阵列中删除对象?我目前正在使用express / node和mongo / mongoose。我正在努力从数组中删除特定对象。这是我到目前为止所拥有的。

// Favorites object
{
  _id: "12931402dnfervo34fjo3",
  favorites: [
      {id: 1, name: "test"}, // I want to delete this (at index 0)
      {id: 2, name: "test2"},
      {id: 3, name: "test3"},
  ]
}


// DELETE /user/{id}/favorites/{index}
router.delete('/favorites/:itemid', auth, (req, res) => {
  Favorites.updateOne({
    _id: req.session.user
  }, {
    $pull: {
      "favorites": {
        "id": req.params.itemid
      }
    }
  }, {
    safe: true,
    multi: true
  })
    .then(response => res.status(200).json(response))
    .catch(err => res.status(400).json({
      message: err.message,
      error: true
    }))
});

此代码中缺少我什么?

1 个答案:

答案 0 :(得分:0)

在示例文档中,argc[1][0]数组中的*argv[1]字段是整数,但是您正在使用id进行查询,该字符串通常是字符串。

将其转换为整数应该有帮助。

favorites