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中文網其他相關文章!