mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-07-05 05:18:23 +02:00
optimized user.delete
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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<keys.length; ++i) {
|
||||
bulk.find({_key: keys[i]}).updateOne({$pull: {
|
||||
members: value
|
||||
}});
|
||||
}
|
||||
|
||||
bulk.execute(function(err, res) {
|
||||
callback(err);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
module.isSetMember = function(key, value, callback) {
|
||||
value = helpers.valueToString(value);
|
||||
|
||||
|
||||
@@ -23,6 +23,18 @@ module.exports = function(redisClient, module) {
|
||||
redisClient.srem(key, value, callback);
|
||||
};
|
||||
|
||||
module.setsRemove = function(keys, value, callback) {
|
||||
callback = callback || function() {};
|
||||
|
||||
var multi = redisClient.multi();
|
||||
for(var i=0; i<keys.length; ++i) {
|
||||
multi.srem(keys[i], value);
|
||||
}
|
||||
multi.exec(function(err, res) {
|
||||
callback(err);
|
||||
});
|
||||
};
|
||||
|
||||
module.isSetMember = function(key, value, callback) {
|
||||
redisClient.sismember(key, value, function(err, result) {
|
||||
if(err) {
|
||||
|
||||
Reference in New Issue
Block a user