Reputation: 672
I have the following code:
Post.create(req.body)
.then(post => res.status(201).json(post))
.catch(err => res.status(500).json(err))
It works perfectly but say I want to exclude a field returned, like the __v field. I know I can do this by just creating an object like
{
title: post.title,
description: post.description
}
and etc. for teh other fields, however if I have 20 fields I don't want to list every single one, so is there a way for mongoose to exclude a field when it returns after it's created.
Upvotes: 0
Views: 631
Reputation: 2343
const obj = { a: 1, b: 2, c: 3, d: 4 };
(({ b, c, ...o }) => o)(obj)
// returns { a: 1, d: 4 }
So, where b
and c
are the keys of the key/value pairs you want left out:
Post.create(req.body)
.then(post => res.status(201).json((({ b, c, ...o }) => o)(post)))
.catch(err => res.status(500).json(err))
You might have to check the brackets there but I think that's right.
Upvotes: 1