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:
Barış Soner Uşaklı
2019-08-05 09:20:00 -04:00
committed by GitHub
parent 52a2e5d61d
commit af1f7249a7
33 changed files with 301 additions and 341 deletions

View File

@@ -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]) } });
});

View File

@@ -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);

View File

@@ -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();
};

View File

@@ -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);
}