MongoDB:从数组中删除对象
在 MongoDB 中,您可以使用 $ 从嵌入在文档中的数组中删除对象拉操作员。如果您希望从数组中删除特定对象,则需要提供与确切对象匹配的查询。
考虑以下文档:
{
_id: 5150a1199fac0e6910000002,
name: 'some name',
items: [{
id: 23,
name: 'item name 23'
},{
id: 24,
name: 'item name 24'
}]
}
要从 items 数组中删除 id 为 23 的项目,请使用以下命令:
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() 方法:
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); }
);
此代码将从与指定 _id 匹配的所有文档的 items 数组中删除 id 为 23 的项目。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3