UNPKG

mongoose-multi-set

Version:

Mongoose plugin that allows you to update a model with multiple values at once (while still keeping the schema validation)

39 lines (35 loc) 874 B
/*! * Mongoose Multi Set * Copyright(c) 2013 Dan Caragea <dancaragea@gmail.com> * MIT Licensed */ function multiSetPlugin(schema, options) { schema.methods.multiSet = function(obj, allowedFields, ignoreMissing) { if (!allowedFields) { return; } if (typeof ignoreMissing == 'undefined') { ignoreMissing = true; } else { ignoreMissing = !!ignoreMissing; } if (Object.prototype.toString.call(allowedFields) !== '[object Array]') { return; } var i = allowedFields.indexOf('id'); if (i !== -1) { allowedFields.splice(i, 1); } i = allowedFields.indexOf('_id'); if (i !== -1) { allowedFields.splice(i, 1); } var self = this; allowedFields.forEach(function(field) { if ((typeof obj[field] !== 'undefined' && ignoreMissing) || !ignoreMissing) { self[field] = obj[field]; } }); } } module.exports = multiSetPlugin;