从 MongoDB 中的数组中删除对象
处理包含数组的文档时,可能需要从中删除特定对象。这在存储项目列表或类似条目的文档中很常见。在 MongoDB 中,有一个指定的运算符,称为 $pull,专门为此目的而设计。
提供的示例说明了一个包含项目数组的文档。目标是删除 id 等于 23 的 item 对象。最初尝试使用 $pull 是不正确的,因为它尝试直接在 $pull 语句中匹配 id 字段,这不是正确的语法。
要成功删除所需的对象,正确的查询是:
db.mycollection.update( { '_id': ObjectId("5150a1199fac0e6910000002") }, { $pull: { items: { id: 23 } } }, false, // Upsert true, // Multi );
此查询指定它想要使用给定的 _id 更新文档,并在该更新中应用 $pull 运算符到 items 数组,匹配每个数组元素的 id 为 23。
对于使用 Mongoose/Node.js 的用户,等效的代码片段是:
<code class="javascript">Model.updateOne( { '_id': ObjectId("5150a1199fac0e6910000002") }, { $pull: { items: { id: 23 } } }, function(err, result) { // Handle error or result } );</code>
以上是如何从 MongoDB 数组中删除对象?的详细内容。更多信息请关注PHP中文网其他相关文章!