Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A mongoose plugin to limit json fields.
JavaScript
branch: master
Failed to load latest commit information.
test tweak
.gitignore init
.npmignore init
.travis.yml omit node 0.6
LICENSE init
README.md add a badge
index.js include '_id' by default
package.json update dependencies

README.md

mongoose-json-select

Build Status NPM version

A mongoose plugin to limit JSON properties.

var jsonSelect = require('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: 'alice@example.com'});
JSON.stringify(user);
// -> '{"_id": "51466baedf03a52e9b000001", "name": "alice", "created": "2013-03-16T16:08:38.065Z"}'

JSON.stringify(user.toJSON({select: 'name email'}));
// -> '{"_id": "51466baedf03a52e9b000001", "name": "alice", "email": "alice@example.com"}'

Installation

$ npm install 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 includes _id field if the field is not excluded explicitly.

schema.plugin(jsonSelect, 'name');  // contains 'name' and '_id'

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

Documentation

select(obj, fields)

Creates a deep clone of 'obj' filtered by 'fields'.

var select = require('mongoose-json-select').select;
select({a: {b: 'foo'}, c: 'bar'}, 'a.b');
// -> {a: {b: 'foo'}}

License

MIT

Something went wrong with that request. Please try again.