」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何從 MongoDB 陣列中刪除物件?

如何從 MongoDB 陣列中刪除物件?

發佈於2024-11-19
瀏覽:587

How do I remove an object from an array in MongoDB?

MongoDB:從陣列中移除物件

在MongoDB 中,您可以使用$ 從嵌入在文件中的陣列中刪除物件拉操作員。如果您希望從陣列中刪除特定對象,則需要提供與確切對象匹配的查詢。

考慮以下文件:

{
   _id: 5150a1199fac0e6910000002,
   name: 'some name',
   items: [{
      id: 23,
      name: 'item name 23'
   },{
      id: 24,
      name: 'item name 24'
   }]
}

要從 items 陣列中刪除 id 為 23 的項目,請使用下列指令:

db.mycollection.update(
    { '_id': ObjectId("5150a1199fac0e6910000002") }, 
    { $pull: { items: { id: 23 } } },
    false, // Upsert
    true, // Multi
);

此指令透過從陣列中刪除項目來更新文件。此查詢使用 _id 欄位指定文檔,$pull 運算子的目標是 items 陣列。在 $pull 操作中,您可以指定一個查詢來符合要刪除的物件。在本例中,我們將物件與id 進行配對: 23.

Mongoose/Node.js 實作

在Mongoose 中,您可以使用下列方法從陣列中刪除物件: pull() 方法:

const Model = mongoose.model('Model', new mongoose.Schema({
  items: [{
    id: Number,
    name: String
  }]
}));

Model.update(
  { '_id': '5150a1199fac0e6910000002' },
  { $pull: { items: { id: 23 } } },
  { multi: true }, // Update all matching documents
  (err, result) => { if (!err) console.log(result); }
);

此程式碼將從與指定 _id 相符的所有文件的 items 陣列中刪除 id 為 23 的項目。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3