fix: #5570, create per category user post zsets

This commit is contained in:
Barış Soner Uşaklı
2019-06-24 15:21:43 -04:00
parent 4e513cf38a
commit a39f0ef592
15 changed files with 316 additions and 89 deletions

View File

@@ -162,6 +162,17 @@ module.exports = function (db, module) {
async.map(keys, module.sortedSetCard, callback);
};
module.sortedSetsCardSum = function (keys, callback) {
if (!keys || (Array.isArray(keys) && !keys.length)) {
return callback(null, 0);
}
db.collection('objects').countDocuments({ _key: Array.isArray(keys) ? { $in: keys } : keys }, function (err, count) {
count = parseInt(count, 10);
callback(err, count || 0);
});
};
module.sortedSetRank = function (key, value, callback) {
getSortedSetRank(false, key, value, callback);
};

View File

@@ -259,6 +259,22 @@ SELECT o."_key" k,
});
};
module.sortedSetsCardSum = function (keys, callback) {
if (!keys || (Array.isArray(keys) && !keys.length)) {
return callback(null, 0);
}
if (!Array.isArray(keys)) {
keys = [keys];
}
module.sortedSetsCard(keys, function (err, counts) {
if (err) {
return callback(err);
}
const sum = counts.reduce(function (acc, val) { return acc + val; }, 0);
callback(null, sum);
});
};
module.sortedSetRank = function (key, value, callback) {
getSortedSetRank('ASC', [key], [value], function (err, result) {
callback(err, result ? result[0] : null);

View File

@@ -129,6 +129,22 @@ module.exports = function (redisClient, module) {
batch.exec(callback);
};
module.sortedSetsCardSum = function (keys, callback) {
if (!keys || (Array.isArray(keys) && !keys.length)) {
return callback(null, 0);
}
if (!Array.isArray(keys)) {
keys = [keys];
}
module.sortedSetsCard(keys, function (err, counts) {
if (err) {
return callback(err);
}
const sum = counts.reduce(function (acc, val) { return acc + val; }, 0);
callback(null, sum);
});
};
module.sortedSetRank = function (key, value, callback) {
redisClient.zrank(key, value, callback);
};