首頁  >  文章  >  web前端  >  如何從 MongoDB 陣列中刪除物件?

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

Susan Sarandon
Susan Sarandon原創
2024-11-01 02:29:02319瀏覽

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

MongoDB:從陣列中刪除物件

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

考慮以下文件:

<code class="json">{
   _id: 5150a1199fac0e6910000002,
   name: 'some name',
   items: [{
      id: 23,
      name: 'item name 23'
   },{
      id: 24,
      name: 'item name 24'
   }]
}</code>

刪除具有id 的項目: 23 從items 數組中,使用以下命令:

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() 方法:

<code class="javascript">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); }
);</code>

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

以上是如何從 MongoDB 陣列中刪除物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn