首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB -从SubArray中删除对象

MongoDB -从SubArray中删除对象
EN

Stack Overflow用户
提问于 2022-01-23 16:28:02
回答 1查看 42关注 0票数 0

我试图从子数组中删除一个对象,但没有运气,因为updateOne()不是函数,remove()不是函数。

我想删除id为'subcat 1''61cae5daf5bfbebd7cf748ef'对象

代码语言:javascript
复制
[
 {
     _id: '61cae5daf5bfbebd7cf748ee'
     title: 'category 1',
     SubCats: [
         {
             _id: '61cae5daf5bfbebd7cf748ef'
             name: 'subcat 1',
             image: '/assets/images/vr-box-6203301_1920.jpg',
         },
         {
             _id: '61cae5daf5bfbebd7cf748fb'
             name: 'subcat 2',
             image: '/assets/images/galaxy-s20_highlights_kv_00.jpg',
         },
     ]
 },
]

请帮帮忙

控制器

代码语言:javascript
复制
const deleteSubCategory = asyncHandler(async (req, res) => {
 const subCategory = await Category.aggregate([
     { $unwind: "$SubCats" }, 
     { $replaceRoot: { newRoot: '$SubCats'} }, 
     { $match: { _id: ObjectId(req.params.id) }}
 ])

 if (subCategory) {
     await subCategory.updateOne({ $pull: {_id: ObjectId(req.params.id)}})
    res.json({ message: 'sub-category removed' })
 } else {
     res.status(404)
     throw new Error('sub-Category not found')
 }
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-24 01:20:14

$update$pull

代码语言:javascript
复制
db.collection.update({
  "SubCats._id": "61cae5daf5bfbebd7cf748ef"
},
{
  "$pull": {
    SubCats: {
      _id: "61cae5daf5bfbebd7cf748ef"
    }
  }
},
{
  "multi": true
})

蒙古操场

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70824182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档