微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 for 循环或 foreach 保存在 mobgodb 模式中,每个项目节省一次以上

如何解决通过 for 循环或 foreach 保存在 mobgodb 模式中,每个项目节省一次以上

我正在使用 mongo 和 node 在这个 pp 中工作,我正面临这个问题,指的是通过在过程中添加的 for 循环特定项目保存数据库

在通过 Findone 方法的第一种方法中,我建立了查询 用于检索暴露一些参数的用户

  User.findOne(
     {
       _id: payload.idCreator,"groupOfChats.idGroup": payload.idGroup,},"groupOfChats.$"

  THEN IN THIS SECOND APPROACH WAITING FOR RESOLVING A PROMISE THROUGH 
  THE METHOD THEN() CATCHING THE RESULT OF THE FORMER FINDONE I TRIGGER A 
  FOR LOOP OVER THAT RESULT,EXPECTING TO RECEIVE SOME DATA.
  AND THEN OVER EACH ELEMENT RETRIEVE FROM THAT DATA I SET AGAIN 
  A MONGO QUERY EXPECTING They COMMIT CERTAIN REQUISITES,WHERE IN CASE
  They DON´T,A NEW OBJECT WOULD BE CREATED (new GroupChat),AND SAVED
  IN THE SCHEMA FOR THAT SPECIFIC ITEM.
   
      ).then((result) => {

        for (let x = 0; x < result.groupOfChats[0].membersId.length; x++) {
          User.findOne(
            {
              _id: result.groupOfChats[0].membersId[x],"groupOfChats.$"
          ).then((result1) => {
            if (result1) {
              return console.log(" GROUP ID FOUND",result1);
            } else {
              console.log("NO GROUP ID FOUND");
              let groupToAdd = new GroupChat(
                payload.idGroup,result.groupOfChats[0].membersId,payload.nameGroup,payload.idCreator,[]
              );
              let userToSaveGroup = User.updateOne(
                {
                  _id: result.groupOfChats[0].membersId[x],{
                  $push: {
                    groupOfChats: groupToAdd,}
              ).then(async () => {
                (await userToSaveGroup).save();
              });
            }
          });
        } 
      });

问题是为每个项目保存对象超过一次

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。