mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-27 09:49:52 +01:00
feat: add getSortedSetMembersWithScores (#11579)
* feat: add getSortedSetMembersWithScores * lint: fix * test: fix redis * fix: mongo/psql
This commit is contained in:
committed by
GitHub
parent
163c977d2f
commit
f083cd559d
@@ -457,6 +457,11 @@ SELECT o."_key" k
|
||||
return data && data[0];
|
||||
};
|
||||
|
||||
module.getSortedSetMembersWithScores = async function (key) {
|
||||
const data = await module.getSortedSetsMembersWithScores([key]);
|
||||
return data && data[0];
|
||||
};
|
||||
|
||||
module.getSortedSetsMembers = async function (keys) {
|
||||
if (!Array.isArray(keys) || !keys.length) {
|
||||
return [];
|
||||
@@ -474,6 +479,29 @@ SELECT "_key" k,
|
||||
return keys.map(k => (res.rows.find(r => r.k === k) || {}).m || []);
|
||||
};
|
||||
|
||||
module.getSortedSetsMembersWithScores = async function (keys) {
|
||||
if (!Array.isArray(keys) || !keys.length) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const res = await module.pool.query({
|
||||
name: 'getSortedSetsMembersWithScores',
|
||||
text: `
|
||||
SELECT "_key" k,
|
||||
"nodebb_get_sorted_set_members_withscores"("_key") m
|
||||
FROM UNNEST($1::TEXT[]) "_key";`,
|
||||
values: [keys],
|
||||
});
|
||||
// TODO: move this sort into nodebb_get_sorted_set_members_withscores?
|
||||
res.rows.forEach((r) => {
|
||||
if (r && r.m) {
|
||||
r.m.sort((a, b) => a.score - b.score);
|
||||
}
|
||||
});
|
||||
|
||||
return keys.map(k => (res.rows.find(r => r.k === k) || {}).m || []);
|
||||
};
|
||||
|
||||
module.sortedSetIncrBy = async function (key, increment, value) {
|
||||
if (!key) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user