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>
此代码将从与指定 _id 匹配的所有文档的 items 数组中删除 id: 23 的项目。
以上是如何从 MongoDB 数组中删除对象?的详细内容。更多信息请关注PHP中文网其他相关文章!