diff --git a/lib/dao.js b/lib/dao.js index 614ea459..7a0c62a2 100644 --- a/lib/dao.js +++ b/lib/dao.js @@ -94,10 +94,14 @@ DataAccessObject.applyScope = function(query) { }; DataAccessObject.applyProperties = function(data) { - var scope = this.defaultScope(data, true) || {}; - if (typeof scope.where === 'object' - && this.definition.settings.applyProperties !== false) { - setScopeValuesFromWhere(data, scope.where, this); + var properties = this.definition.settings.properties; + if (typeof properties === 'object') { + util._extend(data, properties); + } else if (properties !== false) { + var scope = this.defaultScope(data, true) || {}; + if (typeof scope.where === 'object') { + setScopeValuesFromWhere(data, scope.where, this); + } } }; diff --git a/test/default-scope.test.js b/test/default-scope.test.js index 588bb44b..8f9d1f6a 100644 --- a/test/default-scope.test.js +++ b/test/default-scope.test.js @@ -74,6 +74,7 @@ describe('default scope', function () { Widget = db.define('Widget', Product.definition.properties, { base: 'Product', + properties: { kind: 'Widget' }, scope: { where: { kind: 'Widget' }, order: 'name' }, scopes: { active: { where: { active: true } } }, mongodb: { collection: 'Product' },