問題:
在MongoDB 中,如何擷取特定物件來自嵌入文件中的數組?在範例文件中,我們想要從 items 陣列中刪除 id 為 23 的物件。
解決方案:
要實現此目的,請使用 $pull 運算子更具體的查詢來匹配數組中所需的物件。
MongoDB查詢:
db.mycollection.update( { '_id': ObjectId("5150a1199fac0e6910000002") }, { $pull: { items: { id: 23 } } }, false, // Upsert true // Multi );
解釋:
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中文網其他相關文章!