Как исключить поля при возврате в mongoose

#javascript #node.js #express #mongoose

#javascript #node.js #выразить #mongoose

Вопрос:

У меня есть следующий код:

 Post.create(req.body)
.then(post => res.status(201).json(post))
.catch(err => res.status(500).json(err))
 

Это работает отлично, но допустим, я хочу исключить возвращаемое поле, например поле __v. Я знаю, что могу сделать это, просто создав такой объект, как

 {
  title: post.title,
  description: post.description
}
 

и так далее. однако для других полей, если у меня есть 20 полей, я не хочу перечислять каждое из них, так есть ли способ для mongoose исключить поле, когда оно возвращается после его создания.

Ответ №1:

 const obj = { a: 1, b: 2, c: 3, d: 4 };
(({ b, c, ...o }) => o)(obj)
// returns { a: 1, d: 4 }
 

Итак, где b и c находятся ключи пар ключ / значение, которые вы хотите исключить:

 Post.create(req.body)
  .then(post => res.status(201).json((({ b, c, ...o }) => o)(post)))
  .catch(err => res.status(500).json(err))
 

Возможно, вам придется проверить скобки там, но я думаю, что это правильно.

Комментарии:

1. Хорошо, есть ли способ для этого, доступный в Lodash?