首页 > 解决方案 > 如何在 mongodb 中更新?

问题描述

当我想用 mongo 更新数据时遇到问题,这是我的代码:

  async updateStatusLink(campaingId, data) {

    try {

      const campaign = await this.findById(campaingId).exec(); // campaing OK

      if (!campaign) new Error(responseBuilder(undefined, 404, name, 'NOT_FOUND')); // if campaing is false not exist

      const index = await _.findIndex(campaign.searchEngine, o => o.id === data.influencerId); // index of user  inside searchEngine in this list OK

      if (index < 0) new Error(responseBuilder(undefined, 404, name, 'NOT_FOUND')); // if index is -1 not exist the user

      if (!campaign.searchEngine[index].linkCampaing) new Error(responseBuilder(undefined, 404, name, 'NOT_FOUND')); // haven`t link

      console.log(index, campaign.searchEngine[index].linkCampaing.influencerData.linkStatus);

      campaign.searchEngine[index].linkCampaing.influencerData.linkStatus = data.status;

      await campaign.save();

      return responseBuilder({ success: true }, 200, name);
    } catch (ex) {
       try {
          ex = JSON.parse(ex.message)
       } catch (ex1) {
          throw new Error(responseBuilder(undefined, 400, name, ex.message));
  }
     throw new Error(responseBuilder(undefined, ex.statusCode, name, ex.message));
   }
 }

问题是 mongo 没有保存更新,在这一行:

      campaign.searchEngine[index].linkCampaing.influencerData.linkStatus = data.status;

      await campaign.save();

任何想法,你能帮我吗?

标签: node.jsmongodb

解决方案


推荐阅读