diff --git a/lib/index.js b/lib/index.js index c802c5c..3ba5a16 100644 --- a/lib/index.js +++ b/lib/index.js @@ -143,11 +143,13 @@ DataStore.prototype.find = function({query, collection, options = {}, schema}) { } else { query = this.prepareQuery(query, schema) - debug('find in %s %o %o', collection, query, options) + const extendedOptions = Object.assign({}, options, this.getExtraOptionsByOperation('find')) + + debug('find in %s %o %o', collection, query, extendedOptions) this.database .collection(collection) - .find(query, options, (err, cursor) => { + .find(query, extendedOptions, (err, cursor) => { if (err) return reject(err) cursor @@ -655,4 +657,10 @@ DataStore.prototype.dropDatabase = function(collectionName) { }) } +DataStore.prototype.getExtraOptionsByOperation = function(operationName){ + const configKey = "extra_options_by_operation"; + const extraOptionsPerOperationConfig = this.config.has(configKey) ? this.config.get(configKey) : {}; + return extraOptionsPerOperationConfig[operationName] || {} +} + module.exports = DataStore