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
JavaScript
/*!
* 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;