Софт удалить документ из пн goose дб - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть функция, которая создает коды купонов. Я добавил дату окончания срока действия в поле, которое автоматически истечет срок действия купона в соответствии с указанной датой. Для этого я использовал свойство mon goose TTL. Но моя проблема заключается в том, что он удаляет документ навсегда из базы данных.

Вот моя схема и контроллер для того же:

const promotionalCodeSchema = new schema({

    promoCodeName: { 
        type: String,
    },
    promoCodeType: String,
    expired: {
        type: Boolean,
        default: false
    },
    amount: String,
    isActive: { 
        type: Boolean, 
        default: true 
    }, 
    user_id: ObjectId,
    expirationDate: {
        type: Date,
        expires: 0,
        unique: true
    }
}, {
    timestamps: true
});


async createPromoCode(req, res) {
    let body = req.body;

    try {
      let newObjBody = {
        promoCodeName: "",
        promoCodeType: "",
        amount: "",
        expirationDate:{
            expires:0
        }
      };

      newObjBody.amount = body.promoAmount;
      newObjBody.isActive = body.promoActive;
      newObjBody.promoCodeName = PromotionalCodeController.generateCoupon();

      newObjBody.promoCodeType = body.promoCodeType;

      let days = parseInt(body.promoExpiry.replace(/[^\d]+/g, ""));
      newObjBody.expirationDate = new Date(Date.now() + (days * 24 * 3600 * 1000));

      const promotionalcodeschema = new PromotionalCodeSchema(newObjBody);
      await promotionalcodeschema.save((err, result) => {
        if (err) {
          res.status(400).json({err})
        } else {
          res.status(201).json(result)
        }
      });
    } catch (error) {
      console.log(error);
    }
  }

Все работает нормально, но мне нужно только обновить документ свойство, срок действия которого истек: true, когда дата истечения срока действия достигнута, но не удаляется окончательно из базы данных.

Пожалуйста, помогите мне предложить правильный способ достижения того же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...