如何更新猫鼬中另一个数组嵌套数组中的数组内部的元素?

问题描述

我正在尝试从“ bool”数组内部的“ Bigpaths”数组更新Addtasks元素。但是该值不会在mongoDB中更新。

用于jSON模式的猫鼬User代码

{
    "_id" : ObjectId("5f5b68988f9f041d10105a76"),"hash" : "a8449e61bc8dfdd5dee9ae21c74b5da96724cc09b56ca0d472e38b567a244af2b45dedc2f348088a1a96d2b114295c9d1b906a7162f1039569fc79a51844551d","salt" : "8ae5173bbefc3d9f781c35c017200086","tag" : "Client","email" : "[email protected]","name" : "Vikas Yadav","Addtasks" : [ 
      
        {
            "Id4AddtasksBigpaths" : "iu7447mbbaey$s","clientName" : "Vikas Yadav","deadline" : "Set Deadline","assignee" : "Assign","displayLock" : "none","displayDelete" : "inline","commonID" : "nff05aavuum","status" : "Requirement Completed","Date" : "Fri Sep 18 2020 22:30:50 GMT+0530 (India Standard Time)","exampleRadios" : "option1","otherdetails" : "okay","website" : "dsfdd.com","keywords" : "kujhgfd","words" : 23456,"topic" : "olikjyuhgfvd","_id" : ObjectId("5f64e7c2e400641fd8805716"),"Bigpaths4Clients" : [],"Bigpaths" : [ 
                {
                    "path" : "public\\files\\Screenshot_2016-10-22-07-16-56.png","name" : "Screenshot_2016-10-22-07-16-56.png","Id4AddtasksBigpaths" : "iu7447mbbaey$s","uniqueId" : "7dpju1fkivou$id","bool" : ""
                },{
                    "path" : "public\\files\\Screenshot_2016-10-22-07-17-03.png","name" : "Screenshot_2016-10-22-07-17-03.png","uniqueId" : "2kxd5tms8dlu$id","bool" : ""
                }
            ]
        }
    ],"__v" : 0
}

Expresscode更新bool元素:

User.findOne({_id: req.user.id},function(err,dataUser) {
          if (dataUser) {
            console.log("two");
              dataUser.Addtasks.forEach(element => {
                if(element._id == req.params.id)
                {
                   element.Bigpaths.forEach(element2 => {
                     console.log("element2.Id4AddtasksBigpaths === "+ element2.Id4AddtasksBigpaths);
                      User.findOneAndUpdate({"element2.Id4AddtasksBigpaths":element.Id4AddtasksBigpaths},{$set: {"element2.$.bool":true}},function (error,success) {
                          if(error)
                          {
                            console.log(error);
                          }
                          else {
                            console.log("bool");
                          }
                        });
                      })
    
    
    
                console.log("userID and paramID got matched in if condition");
                res.render('viewTask',{mainData: element,hiding: true});
                console.log("viewTask rendered with editing option");
              }
            });
              }
              else {
              res.render('error');
            }
     
       });

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)