簡體   English   中英

從 Mongoose 中的數組中刪除 Object

[英]Remove Object from array in Mongoose

刪除 Array 中的 Object 時遇到此問題。 我似乎不明白使用 $pull 刪除項目的正確方法是什么。 提前致謝!

JSON 數據

"accountId": "62efd8c008f424af397b415d",
"links": [
    {
        "url": "www.github.com/iluvkohii",
        "title": "GitHub"
    },
    {
        "url": "www.github.com/iluvkohii",
        "title": "GitHub"
    },
    {
        "url": "www.github.com/iluvkohii",
        "title": "GitHub",
        "_id": "62efe1ee4675d0baa10bd219"
    },
    {
        "url": "www.github.com/iluvkohii",
        "title": "GitHub",
        "linkId": "62efe4e142099faeeb5999d0"
    }
]

代碼

  try {
    const { accountId, _id } = req.body;
    return Profile.findOneAndUpdate(
      { accountId },
      { $pull: { links: { _id } } },
      { new: true, }
    )
      .then((value) => res.status(200).json(value))
      .catch((err) => res.status(400).json(err.errors));
  } catch (error) {
    console.error(error);
  }

一天后我剛剛解決了我自己的問題,意識到一個普通的字符串不等於 Mongoose ObjectId

  try {
    const { accountId, _id } = req.body;
    return Profile.findOneAndUpdate(
      { accountId },
      { $pull: { links: { id: mongoose.Types.ObjectId(_id) } } },
      { new: true },
    )
      .then((value) => res.status(200).json(value))
      .catch((err) => res.status(400).json(err.errors));
  } catch (error) {
    console.error(error);
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM