通过 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 (将#修改为@)