mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-13 01:15:47 +01:00
feat: test psql without defineProperty (#7815)
* feat: test psql without defineProperty * feat: refactor psql remove .bind calls, use module.pool.query directly move requires to top of file move promisify to bottom so .init etc are promisified * feat: mongodb move requires to bottom * feat: redis
This commit is contained in:
committed by
GitHub
parent
52a2e5d61d
commit
af1f7249a7
@@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function (db, module) {
|
||||
module.exports = function (module) {
|
||||
var helpers = require('../helpers');
|
||||
var utils = require('../../../utils');
|
||||
|
||||
@@ -17,7 +17,7 @@ module.exports = function (db, module) {
|
||||
value = helpers.valueToString(value);
|
||||
|
||||
try {
|
||||
await db.collection('objects').updateOne({ _key: key, value: value }, { $set: { score: parseFloat(score) } }, { upsert: true, w: 1 });
|
||||
await module.client.collection('objects').updateOne({ _key: key, value: value }, { $set: { score: parseFloat(score) } }, { upsert: true, w: 1 });
|
||||
} catch (err) {
|
||||
if (err && err.message.startsWith('E11000 duplicate key error')) {
|
||||
return await module.sortedSetAdd(key, score, value);
|
||||
@@ -40,7 +40,7 @@ module.exports = function (db, module) {
|
||||
}
|
||||
values = values.map(helpers.valueToString);
|
||||
|
||||
var bulk = db.collection('objects').initializeUnorderedBulkOp();
|
||||
var bulk = module.client.collection('objects').initializeUnorderedBulkOp();
|
||||
for (var i = 0; i < scores.length; i += 1) {
|
||||
bulk.find({ _key: key, value: values[i] }).upsert().updateOne({ $set: { score: parseFloat(scores[i]) } });
|
||||
}
|
||||
@@ -62,7 +62,7 @@ module.exports = function (db, module) {
|
||||
|
||||
value = helpers.valueToString(value);
|
||||
|
||||
var bulk = db.collection('objects').initializeUnorderedBulkOp();
|
||||
var bulk = module.client.collection('objects').initializeUnorderedBulkOp();
|
||||
for (var i = 0; i < keys.length; i += 1) {
|
||||
bulk.find({ _key: keys[i], value: value }).upsert().updateOne({ $set: { score: parseFloat(isArrayOfScores ? scores[i] : scores) } });
|
||||
}
|
||||
@@ -73,7 +73,7 @@ module.exports = function (db, module) {
|
||||
if (!Array.isArray(data) || !data.length) {
|
||||
return;
|
||||
}
|
||||
var bulk = db.collection('objects').initializeUnorderedBulkOp();
|
||||
var bulk = module.client.collection('objects').initializeUnorderedBulkOp();
|
||||
data.forEach(function (item) {
|
||||
bulk.find({ _key: item[0], value: String(item[2]) }).upsert().updateOne({ $set: { score: parseFloat(item[1]) } });
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function (db, module) {
|
||||
module.exports = function (module) {
|
||||
module.sortedSetIntersectCard = async function (keys) {
|
||||
if (!Array.isArray(keys) || !keys.length) {
|
||||
return 0;
|
||||
@@ -13,7 +13,7 @@ module.exports = function (db, module) {
|
||||
{ $group: { _id: null, count: { $sum: 1 } } },
|
||||
];
|
||||
|
||||
const data = await db.collection('objects').aggregate(pipeline).toArray();
|
||||
const data = await module.client.collection('objects').aggregate(pipeline).toArray();
|
||||
return Array.isArray(data) && data.length ? data[0].count : 0;
|
||||
};
|
||||
|
||||
@@ -87,7 +87,7 @@ module.exports = function (db, module) {
|
||||
}
|
||||
pipeline.push({ $project: project });
|
||||
|
||||
let data = await db.collection('objects').aggregate(pipeline).toArray();
|
||||
let data = await module.client.collection('objects').aggregate(pipeline).toArray();
|
||||
|
||||
if (!params.withScores) {
|
||||
data = data.map(item => item.value);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function (db, module) {
|
||||
module.exports = function (module) {
|
||||
var helpers = require('../helpers');
|
||||
|
||||
module.sortedSetRemove = async function (key, value) {
|
||||
@@ -18,7 +18,7 @@ module.exports = function (db, module) {
|
||||
value = helpers.valueToString(value);
|
||||
}
|
||||
|
||||
await db.collection('objects').deleteMany({
|
||||
await module.client.collection('objects').deleteMany({
|
||||
_key: Array.isArray(key) ? { $in: key } : key,
|
||||
value: isValueArray ? { $in: value } : value,
|
||||
});
|
||||
@@ -30,7 +30,7 @@ module.exports = function (db, module) {
|
||||
}
|
||||
value = helpers.valueToString(value);
|
||||
|
||||
await db.collection('objects').deleteMany({ _key: { $in: keys }, value: value });
|
||||
await module.client.collection('objects').deleteMany({ _key: { $in: keys }, value: value });
|
||||
};
|
||||
|
||||
module.sortedSetsRemoveRangeByScore = async function (keys, min, max) {
|
||||
@@ -49,14 +49,14 @@ module.exports = function (db, module) {
|
||||
query.score.$lte = parseFloat(max);
|
||||
}
|
||||
|
||||
await db.collection('objects').deleteMany(query);
|
||||
await module.client.collection('objects').deleteMany(query);
|
||||
};
|
||||
|
||||
module.sortedSetRemoveBulk = async function (data) {
|
||||
if (!Array.isArray(data) || !data.length) {
|
||||
return;
|
||||
}
|
||||
var bulk = db.collection('objects').initializeUnorderedBulkOp();
|
||||
var bulk = module.client.collection('objects').initializeUnorderedBulkOp();
|
||||
data.forEach(item => bulk.find({ _key: item[0], value: String(item[1]) }).remove());
|
||||
await bulk.execute();
|
||||
};
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function (db, module) {
|
||||
module.exports = function (module) {
|
||||
module.sortedSetUnionCard = async function (keys) {
|
||||
if (!Array.isArray(keys) || !keys.length) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const data = await db.collection('objects').aggregate([
|
||||
const data = await module.client.collection('objects').aggregate([
|
||||
{ $match: { _key: { $in: keys } } },
|
||||
{ $group: { _id: { value: '$value' } } },
|
||||
{ $group: { _id: null, count: { $sum: 1 } } },
|
||||
@@ -61,7 +61,7 @@ module.exports = function (db, module) {
|
||||
}
|
||||
pipeline.push({ $project: project });
|
||||
|
||||
let data = await db.collection('objects').aggregate(pipeline).toArray();
|
||||
let data = await module.client.collection('objects').aggregate(pipeline).toArray();
|
||||
if (!params.withScores) {
|
||||
data = data.map(item => item.value);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user