mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-12 08:55:47 +01:00
fix: #5570, create per category user post zsets
This commit is contained in:
@@ -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);
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user