@ifit/mongoose-clean
v1.1.0
Published
Removes private vars, __v, and renames _id to id for mongoose documents
Downloads
60
Maintainers
Keywords
Readme
Purpose
A plugin for Mongoose to normalize JSON output, as well as Object output. Based on mongoose-to-json
Contributing
See CONTRIBUTING.md
Usage
Setup as a global plugin for all Mongoose schema's:
const mongoose = require("mongoose");
const clean = require("@ifit/mongoose-clean");
mongoose.plugin(clean);
Or for a specific (sub) schema:
const mongoose = require("mongoose");
const clean = require("@ifit/mongoose-clean");
const { Schema } = mongoose;
const MySchema = new Schema({});
MySchema.plugin(clean);
This plugin will normalize JSON output for client side applications from:
{
"_id": "400e8324a71d4410b9dc3980b5f8cdea",
"__v": 2,
"name": "Item A"
}
To a cleaner:
{
"id": "400e8324a71d4410b9dc3980b5f8cdea",
"name": "Item A"
}
You can also remove private paths from the JSON:
const mongoose = require("mongoose");
const toJson = require("@ifit/mongoose-clean");
const { Schema } = mongoose;
const schema = new Schema({
email: { type: String },
password: { type: String, private: true }
});
schema.plugin(toJson);
const User = mongoose.model("users", schema);
const user = new User({ email: "[email protected]", password: "test" });
console.log(user.toJSON());
This will output:
{
"id": "400e8324a71d4410b9dc3980b5f8cdea",
"email": "[email protected]"
}