k-mongoose-json-select
v1.0.2
Published
A mongoose plugin to limit JSON properties and set this properties to null.
Downloads
39
Readme
mongoose-json-select
A mongoose plugin to limit JSON properties and set the unselected fields to null.
var jsonSelect = require('k-mongoose-json-select');
var schema = Schema({
name: String,
email: String,
created: {type: Date, default: Date.now}
});
schema.plugin(jsonSelect, 'name created');
var User = mongoose.model('User', schema);
var user = User({name: 'alice', email: '[email protected]'});
JSON.stringify(user);
// -> '{"name": "alice", "email": null , "created": "2013-03-16T16:08:38.065Z"}'
JSON.stringify(user.toJSON({select: 'name email'}));
// -> '{"name": "alice", "email": "[email protected]", "created": null }'
Installation
$ npm install k-mongoose-json-select
Usage
Inclusion/Exclusion
// inclusion. these are equivalent
schema.plugin(jsonSelect, 'name.first');
schema.plugin(jsonSelect, {'name.first': 1});
// exclusion. these are equivalent
schema.plugin(jsonSelect, '-name.last');
schema.plugin(jsonSelect, {'name.last': 0});
Always exclude _id,id and __v field if the field is not included explicitly.
schema.plugin(jsonSelect, 'name'); // contains 'name' only
Configures default fields as a plugin option or schema option.
// these are equivalent
schema.plugin(jsonSelect, 'name');
schema.plugin(jsonSelect);
schema.set('toJSON', {select: 'name'});
Specifies fields when calling toJSON.
// this overrides a default configuration
JSON.stringify(doc.toJSON({select: 'name email'}));
The syntax for fields is the same with mongoose's Query#select.
http://mongoosejs.com/docs/api.html#query_Query-select
Support
This plugin is proudly supported by Kubide [email protected]
License
MIT