diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index a056de991f..1d8f992ab9 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -377,8 +377,12 @@ module.exports = function(db, module) { }; module.isSortedSetMember = function(key, value, callback) { - module.sortedSetScore(key, value, function(err, score) { - callback(err, !!score); + if (!key) { + return callback(); + } + value = helpers.valueToString(value); + db.collection('objects').findOne({_key: key, value: value}, {_id: 0, value: 1}, function(err, result) { + callback(err, !!result); }); }; diff --git a/src/routes/debug.js b/src/routes/debug.js index 695e806b23..b81938ccc9 100644 --- a/src/routes/debug.js +++ b/src/routes/debug.js @@ -9,7 +9,7 @@ var express = require('express'), module.exports = function(app, middleware, controllers) { var router = express.Router(); - app.use(nconf.get('relative_path') + '/debug', router); + router.get('/uid/:uid', function (req, res) { if (!req.params.uid) { return res.redirect('/404'); @@ -59,4 +59,6 @@ module.exports = function(app, middleware, controllers) { router.get('/test', function(req, res) { res.redirect(404); }); + + app.use(nconf.get('relative_path') + '/debug', router); }; diff --git a/tests/database/sorted.js b/tests/database/sorted.js index 6680ee8716..5c34c380b8 100644 --- a/tests/database/sorted.js +++ b/tests/database/sorted.js @@ -347,6 +347,10 @@ describe('Sorted Set methods', function() { }); describe('isSortedSetMember()', function() { + before(function(done) { + db.sortedSetAdd('zeroscore', 0, 'itemwithzeroscore', done); + }); + it('should return false if sorted set does not exist', function(done) { db.isSortedSetMember('doesnotexist', 'value1', function(err, isMember) { assert.equal(err, null); @@ -373,6 +377,14 @@ describe('Sorted Set methods', function() { done(); }); }); + + it('should return true if element is in sorted set with score 0', function(done) { + db.isSortedSetMember('zeroscore', 'itemwithzeroscore', function(err, isMember) { + assert.ifError(err); + assert.deepEqual(isMember, true); + done(); + }); + }); }); describe('isSortedSetMembers()', function() {