如何在MongoDB中删除文档内嵌projects数组内的指定项目对象
MongoDB 数组内指定项目对象删除方法
你可以使用MongoDB内置的$pull操作符实现需求,该操作符会自动删除数组中所有匹配指定条件的元素。
场景1:已知待删除项目的唯一标识(推荐)
如果Project B的projectId是唯一值,直接按ID匹配删除即可,不会误删其他数据:
// 请把代码中的collection替换为你实际的集合名,xxx替换为Project B的实际projectId值 db.collection.updateOne( { userName: "milad" }, { $pull: { projets: { projectId: "xxx" } } } )
场景2:通过多个属性匹配待删除项目
如果没有记录Project B的projectId,可以组合多个字段做匹配条件,只要能唯一识别Project B即可:
db.collection.updateOne( { userName: "milad" }, { $pull: { projets: { pName: "Project B的名称", location: "Project B的位置" // 可继续补充其他匹配字段 } } } )
注意事项
- 若需要批量修改所有包含该待删除项目的文档,将
updateOne方法替换为updateMany即可 - 注意你的文档中数组字段名拼写为
projets,请勿写错为常见的projects,否则操作不会生效 $pull会删除数组中所有符合匹配条件的元素,如果数组内存在多个相同属性的项目,会被一并删除
内容的提问来源于stack exchange,提问作者Miladfa7
相关产品推荐
相关产品推荐

