Files
NodeBB/src/database/mongo/sorted/remove.js

56 lines
1.4 KiB
JavaScript
Raw Normal View History

2016-12-23 14:12:00 +03:00
'use strict';
module.exports = function (db, module) {
var helpers = module.helpers.mongo;
module.sortedSetRemove = function (key, value, callback) {
function done(err) {
callback(err);
}
callback = callback || helpers.noop;
if (!key) {
return callback();
}
if (Array.isArray(value)) {
value = value.map(helpers.valueToString);
2017-02-18 12:30:49 -07:00
db.collection('objects').remove({ _key: key, value: { $in: value } }, done);
2016-12-23 14:12:00 +03:00
} else {
value = helpers.valueToString(value);
2017-02-18 12:30:49 -07:00
db.collection('objects').remove({ _key: key, value: value }, done);
2016-12-23 14:12:00 +03:00
}
};
module.sortedSetsRemove = function (keys, value, callback) {
callback = callback || helpers.noop;
if (!Array.isArray(keys) || !keys.length) {
return callback();
}
value = helpers.valueToString(value);
2017-02-18 12:30:49 -07:00
db.collection('objects').remove({ _key: { $in: keys }, value: value }, function (err) {
2016-12-23 14:12:00 +03:00
callback(err);
});
};
module.sortedSetsRemoveRangeByScore = function (keys, min, max, callback) {
callback = callback || helpers.noop;
if (!Array.isArray(keys) || !keys.length) {
return callback();
}
2017-02-18 12:30:49 -07:00
var query = { _key: { $in: keys } };
2016-12-23 14:12:00 +03:00
if (min !== '-inf') {
2017-08-20 20:41:25 -04:00
query.score = { $gte: parseFloat(min) };
2016-12-23 14:12:00 +03:00
}
if (max !== '+inf') {
query.score = query.score || {};
2017-08-20 20:41:25 -04:00
query.score.$lte = parseFloat(max);
2016-12-23 14:12:00 +03:00
}
db.collection('objects').remove(query, function (err) {
callback(err);
});
};
2017-02-18 02:30:48 -07:00
};