Normalize Mongoose JSON output
This plugin removes the following fields _id
, __v
, and published virtuals id
when the document is converted to JSON. Also it allows you to hide private fields like password
.
$ npm install normalize-mongoose
Using Github NPM Registry
$ npm install abranhe@normalize-mongoose
import mongoose from 'mongoose';
import normalize from 'normalize-mongoose';
const personSchema = mongoose.Schema({
name: String,
age: Number,
});
personSchema.plugin(normalize);
See how normalize-mongoose
will clean the the JSON output:
{
"_id": "5dff03d3218b91425b9d6fab",
"name": "Abraham",
"__v": 0
}
{
"id": "5dff03d3218b91425b9d6fab",
"name": "Abraham"
}
normalize-mongoose
comes really handy on real word applications, allowing you to hide from the output any private field previously defined.
import mongoose from 'mongoose';
import normalize from 'normalize-mongoose';
const personSchema = mongoose.Schema({
name: String,
age: Number,
email: String,
password: { type: String, private: true },
});
personSchema.plugin(normalize);
const Person = mongoose.model('Person', personSchema);
const someone = new Person( {
name: 'Abraham',
age: 33,
email: '[email protected]',
password: 'my_awesome_password',
});
The above code will output:
{
"id": "5dff03d3218b91425b9d6fab",
"name": "Abraham",
"age": 33,
"email": "[email protected]"
}
MIT © Abraham Hernandez