From 4b80bbb9c4850652996a3b48445ea035272ac18e Mon Sep 17 00:00:00 2001 From: barisusakli Date: Tue, 16 Sep 2014 22:25:12 -0400 Subject: [PATCH] optimized user.delete --- src/database/level/sets.js | 4 ++ src/database/mongo/sets.js | 21 +++++++++++ src/database/redis/sets.js | 12 ++++++ src/user/delete.js | 77 +++++++++++--------------------------- 4 files changed, 58 insertions(+), 56 deletions(-) diff --git a/src/database/level/sets.js b/src/database/level/sets.js index 525477db7d..b7697f1209 100644 --- a/src/database/level/sets.js +++ b/src/database/level/sets.js @@ -29,6 +29,10 @@ module.exports = function(db, module) { }); }; + module.setsRemove = function(keys, value, callback) { + throw new Error('not-implemented'); + }; + module.isSetMember = function(key, value, callback) { module.getListRange(key, 0, -1, function(err, set) { callback(err, set.indexOf(value) !== -1); diff --git a/src/database/mongo/sets.js b/src/database/mongo/sets.js index b70b3a044a..a48b51cded 100644 --- a/src/database/mongo/sets.js +++ b/src/database/mongo/sets.js @@ -69,6 +69,27 @@ module.exports = function(db, module) { db.collection('objects').update({_key: key}, {$pullAll: {members: value}}, callback); }; + module.setsRemove = function(keys, value, callback) { + callback = callback || helpers.noop; + if (!Array.isArray(keys) || !keys.length) { + return callback(); + } + value = helpers.valueToString(value); + + var bulk = db.collection('objects').initializeUnorderedBulkOp(); + + for(var i=0; i