diff --git a/src/database/level/sorted.js b/src/database/level/sorted.js index b0cbcb415a..d262af89c2 100644 --- a/src/database/level/sorted.js +++ b/src/database/level/sorted.js @@ -51,6 +51,10 @@ module.exports = function(db, module) { }, callback); }; + module.sortedSetsRemoveRangeByScore = function(keys, min, max, callback) { + throw new Error('not implemented'); + }; + function flattenSortedSet(set, callback) { callback(null, !set.length ? [] : set.reduce(function(a, b) { return (a.length ? a : [a.value]).concat([b.value]); diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index ead67b6115..a1dd33576f 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -79,6 +79,12 @@ module.exports = function(db, module) { db.collection('objects').remove({_key: {$in: keys}, value: value}, callback); }; + module.sortedSetsRemoveRangeByScore = function(keys, min, max, callback) { + callback = callback || helpers.noop; + db.collection('objects').remove({_key: {$in: keys}, score: {$lte: max, $gte: min}}, function(err) { + callback(err); + }); + }; function getSortedSetRange(key, start, stop, sort, withScores, callback) { db.collection('objects').find({_key:key}, {fields: {_id: 0, value: 1, score: 1}}) diff --git a/src/database/redis/sorted.js b/src/database/redis/sorted.js index abdd2ae435..36ef4f6c73 100644 --- a/src/database/redis/sorted.js +++ b/src/database/redis/sorted.js @@ -55,6 +55,16 @@ module.exports = function(redisClient, module) { multi('zrem', keys, value, callback); }; + module.sortedSetsRemoveRangeByScore = function(keys, min, max, callback) { + var multi = redisClient.multi(); + for(var i=0; i