diff --git a/src/database/mongo/hash.js b/src/database/mongo/hash.js index dbf294119e..585abea8b6 100644 --- a/src/database/mongo/hash.js +++ b/src/database/mongo/hash.js @@ -231,9 +231,11 @@ module.exports = function(db, module) { module.incrObjectFieldBy = function(key, field, value, callback) { callback = callback || helpers.noop; - if (!key) { + value = parseInt(value, 10); + if (!key || isNaN(value)) { return callback(); } + var data = {}; field = helpers.fieldToString(field); data[field] = value; diff --git a/tests/database/hash.js b/tests/database/hash.js index 7bcd23f5d8..8489669e92 100644 --- a/tests/database/hash.js +++ b/tests/database/hash.js @@ -347,7 +347,7 @@ describe('Hash methods', function() { it('should set an objects field to 5 if object does not exist', function(done) { db.incrObjectFieldBy('testObject16', 'field1', 5, function(err, newValue) { - assert.equal(err, null); + assert.ifError(err); assert.equal(arguments.length, 2); assert.equal(newValue, 5); done(); @@ -356,12 +356,20 @@ describe('Hash methods', function() { it('should increment an object fields by passed in value and return it', function(done) { db.incrObjectFieldBy('testObject15', 'age', 11, function(err, newValue) { - assert.equal(err, null); + assert.ifError(err); assert.equal(arguments.length, 2); assert.equal(newValue, 111); done(); }); }); + + it('should increment an object fields by passed in value and return it', function(done) { + db.incrObjectFieldBy('testObject15', 'age', '11', function(err, newValue) { + assert.ifError(err); + assert.equal(newValue, 122); + done(); + }); + }); });