diff --git a/lib/query.js b/lib/query.js index 80e87994a57..45e6fb77f87 100644 --- a/lib/query.js +++ b/lib/query.js @@ -1359,7 +1359,7 @@ Query.prototype._find = function(callback) { * * query.find({ name: 'Los Pollos Hermanos' }).find(callback) * - * @param {Object} [criteria] mongodb selector + * @param {Object} [filter] mongodb selector * @param {Function} [callback] * @return {Query} this * @api public @@ -1375,9 +1375,11 @@ Query.prototype.find = function(conditions, callback) { if (mquery.canMerge(conditions)) { this.merge(conditions); - } - prepareDiscriminatorCriteria(this); + prepareDiscriminatorCriteria(this); + } else if (conditions != null) { + this.error(new ObjectParameterError(conditions, 'filter', 'find')); + } // if we don't have a callback, then just return the query object if (!callback) { @@ -1564,7 +1566,7 @@ Query.prototype._findOne = function(callback) { * } * }); * - * @param {Object|Query} [criteria] mongodb selector + * @param {Object} [filter] mongodb selector * @param {Object} [projection] optional fields to return * @param {Object} [options] see [`setOptions()`](http://mongoosejs.com/docs/api.html#query_Query-setOptions) * @param {Function} [callback] optional params are (error, document) @@ -1604,18 +1606,17 @@ Query.prototype.findOne = function(conditions, projection, options, callback) { if (mquery.canMerge(conditions)) { this.merge(conditions); - } else if (conditions != null) { - throw new Error('Invalid argument to findOne(): ' + - util.inspect(conditions)); - } - prepareDiscriminatorCriteria(this); + prepareDiscriminatorCriteria(this); - try { - this.cast(this.model); - this.error(null); - } catch (err) { - this.error(err); + try { + this.cast(this.model); + this.error(null); + } catch (err) { + this.error(err); + } + } else if (conditions != null) { + this.error(new ObjectParameterError(conditions, 'filter', 'findOne')); } if (!callback) {