簡體   English   中英

無法使用 ZCCADCDEDB567ABAE643E15DCF0974E503Z / UpdateOne 從數組中刪除項目

[英]Unable to remove item from array using Mongoose / UpdateOne

我有一個 Node.js 應用程序,當 API 端點被命中時,我試圖從數組中刪除 object。 到目前為止,我無法讓它更新/刪除 object。 目前,以下查詢返回沒有錯誤,但在檢查我的數據庫時,我仍然看到它。 以下是我的查詢和基本回復(我將添加更多內容,但不在此問題的 scope 范圍內)。 我還包含了我的數據 model 的樣本。 在下面的數據 model 中,我試圖從 foo 數組中刪除整個 object,因為它不再需要。 代碼

const ID = req.params.id
await FooBar.updateOne({foo: {$elemMatch: {v_code: ID}}}, { $pull: {v_code: ID}}, (err) => {
   if(err) return res.json({success: false, err})
   return res.json({success: true, id: ID})
})

數據 model

{
  bar: [
     {
       foo: [
         {
             v_code: <>
             _id: <>
          }
       ]
     }
  ]
}

我確信在其他問題中已經提出了這個問題,但沒有針對我的數據 model 的問題。 我嘗試將多個 SO 帖子拼湊在一起,這就是我得到查詢的 $elemmatch 和 $pull 部分的方式,到目前為止,我的運氣為零

試試下面的命令:

db.collection.updateOne(
    {
        "bar.foo.v_code": ID
    },
    {
        $pull: { bar: { foo: { $elemMatch: { v_code: ID } } } }
    }
)

https://mongoplayground.net/p/iqJki-mnHSJ

暫無
暫無

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

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