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

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

DDD
DDD原創
2024-11-02 07:26:29997瀏覽

How to Remove a Specific Object from an Array in MongoDB?

MongoDB:從陣列中刪除物件

問題:

在MongoDB 中,如何擷取特定物件來自嵌入文件中的數組?在範例文件中,我們想要從 items 陣列中刪除 id 為 23 的物件。

解決方案:

要實現此目的,請使用 $pull 運算子更具體的查詢來匹配數組中所需的物件。

MongoDB查詢:

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

解釋:

  • $pull 🎜>
  • $pull 🎜>
  • $pull 。中刪除元素。
{ items: { id: 23 } }: 透過符合其特定來指定要刪除的巢狀物件欄位。

Upsert:設定為 false 以防止在更新與任何現有文件都不匹配時建立新文件。

Multi:設定為true 將更新套用至多個符合文件(雖然這應該只有一場比賽

<code class="javascript">MyModel.findOneAndUpdate(
  { '_id': '5150a1199fac0e6910000002' },
  { $pull: { items: { id: 23 } } },
  { multi: true }
);</code>

Node.js/Mongoose:

在Mongoose 中,您可以使用以下查詢:注意: MongoDB 3.6 也支援 $elemMatch 運算子與 $pull 結合使用用於陣列內更複雜的篩選。

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

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