Как обновить строку и убрать поле - PullRequest
0 голосов
/ 26 мая 2018

У меня есть пользовательская коллекция, которая имеет.

  • firstName.
  • lastName.
  • деактивированоAt. * ​​1008 *
  • деактивированоBy.
  • Статус (0: деактивирован, 1: активен).

Когда пользователь активен, deactivationAt и deactivationBy должны быть удалены из коллекции.

когда пользователь деактивирован, тогда deactivationAt и deactivationBy должны быть доступны в коллекции.

Я делаю следующее действие.

1-> когда я деактивирую пользователяЯ установил деактивированный и деактивированный по .

2-> Когда я активирую пользователя, deactivationAt и deactivationBy должны быть удалены из коллекции.

Мое действие.

module.exports.deactive = function(req, res) {
  let userId = req.params.userId;
  let params = {
    status: 0,
    deactivatedAt: new Date(),
    deactivatedBy: {
      userId: req.payload._id,
      firstName: req.payload.firstName,
      lastName: req.payload.lastName
    }
  };
  User.findByIdAndUpdate(userId, params, {new: true})
    .then(result => {
      sendJsonResponse(res, 200, {message: 'User successfully deactivated'});
    })
    .catch(err => {
      sendJsonResponse(res, 500, {message: 'Error occurred'});
    })
};

module.exports.active = function(req, res) {
  let userId = req.params.userId;
  let params = {
    status: 1
  };


  //------------ in here in need to remove the deactivatedAt and deactivated By


  User.findByIdAndUpdate(userId, params)
    .then(result => {
      sendJsonResponse(res, 200, {message: 'User successfully activated'});
    })
    .catch(err => {
      sendJsonResponse(res, 500, {message: 'Error occurred'});
    })
};

Заранее спасибо.

1 Ответ

0 голосов
/ 26 мая 2018

Я думаю, что вы должны использовать $ unset в update () для удаления полей из коллекции

let params = { 
     $unset : {
          deactivatedAt : 1,
          deactivatedBy : 1
     }
};
User.update({_id : user_id}, params)
.then(result => {
    sendJsonResponse(res, 200, {message: 'User successfully activated'});
})
.catch(err => {
    sendJsonResponse(res, 500, {message: 'Error occurred'});
});

А когда пользователь не активен, вы можете снова установить значения, используя $ set

let params = { 
     $set : {
          deactivatedAt : <value>,
          deactivatedBy : <value>
     }
};
User.update({_id : user_id}, params)
.then(result => {
    sendJsonResponse(res, 200, {message: 'User successfully deactivated'});
})
.catch(err => {
    sendJsonResponse(res, 500, {message: 'Error occurred'});
});

Надеюсь, это поможет вам.Спасибо.

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