【问题标题】:How do I remove/delete project from project array?如何从项目数组中删除/删除项目?
【发布时间】:2021-10-19 16:23:36
【问题描述】:

我正在尝试从数组中删除项目对象。

项目

  {
      _id : ...,
      userName: milad ,
      projets : [
        { .. projectId, pName, location .... A },
        { .. projectId, pName, location .... B },
        { .. projectId, pName, location .... C },
      ]
    }

如何在MongoDB中删除项目B?

移除项目 B 后的项目

{
  _id : ...,
  userName: milad ,
  projets : [
    { .. projectId, pName, location .... A },
    { .. projectId, pName, location .... C },
  ]
}

【问题讨论】:

标签: javascript mongodb mongoose mongodb-query


【解决方案1】:

如果您从数据库中收到了一个文档,您可以根据位置从数组中删除一个对象,具体方式如下:

const doc = {
  _id: '507f191e810c19729de860e0',
  userName: 'milad',
  projects: [
    { _id: '507f191e810c19729de860ea', pName: 'projectA', location: 'a' },
    { _id: '507f191e810c19729de860eb', pName: 'projectB', location: 'b' },
    { _id: '507f191e810c19729de860ec', pName: 'projectC', location: 'c' }
  ]
}

// remove project b (one method, there are many more)
doc.projects = doc.projects.filter((project) => project.location !== 'b');

在过滤过程之后,您必须将其保存回您的 mongoDB:

猫鼬:(示例)

await doc.save();

【讨论】:

    【解决方案2】:

    另一个答案

    db.collection('Profile').updateOne({ userName: username,
          "Projects.projectId": projectId }, { $pull: { 'Projects': { projectId: projectId } }})
      }
    

    【讨论】:

      猜你喜欢
      • 2021-10-03
      • 2016-09-07
      • 1970-01-01
      • 2014-09-21
      • 1970-01-01
      • 2018-01-14
      • 2016-10-30
      相关资源
      最近更新 更多