【问题标题】:How do I insert new project and update old project in an array?如何在数组中插入新项目并更新旧项目?
【发布时间】:2021-10-09 10:45:48
【问题描述】:

我正在尝试插入一个新项目并更新数组中的旧项目。

这是我想要在伪 json 中做的事情。

如何在 MongoDB 中更新项目 A?

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

如何在MongoDB中插入Project D?

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

【问题讨论】:

    标签: javascript mongodb mongoose mongodb-query


    【解决方案1】:

    尝试使用$push操作,同时使用findOneAndUpdate()插入新文档

      db1.findOneAndUpdate({ _id: 1 }, { $push: { projets: {name:"bbbbb" }} });
    

    要更新单个数组元素,请使用以下内容

       db1.findOneAndUpdate({ id: 1, "projets.projectid": 2 }, { $set: { "projets.$.name": "cccc" } });
     
    

    【讨论】:

      【解决方案2】:
         const insertProjec= async (newProject, _id)   { 
      
        let projectObj = await Project.findOne({_id})
      
        let updatedProjectArray = [...projectObj.projects, newProject]
      
        let updatedProject = await Project.findOneAndUpdate({_id,{projects:updatedProjectArray})
         }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-10
        • 1970-01-01
        • 2014-05-17
        • 2016-02-21
        • 2014-04-12
        • 1970-01-01
        相关资源
        最近更新 更多