diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index 67a3e074d8..2899a86188 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -306,7 +306,11 @@ module.exports = function (module) { return; } value = helpers.valueToString(value); - const result = await module.client.collection('objects').findOne({ _key: key, value: value }, { projection: { _id: 0, _key: 0, score: 0 } }); + const result = await module.client.collection('objects').findOne({ + _key: key, value: value, + }, { + projection: { _id: 0, value: 1 }, + }); return !!result; }; @@ -315,7 +319,11 @@ module.exports = function (module) { return; } values = values.map(helpers.valueToString); - const results = await module.client.collection('objects').find({ _key: key, value: { $in: values } }, { projection: { _id: 0, _key: 0, score: 0 } }).toArray(); + const results = await module.client.collection('objects').find({ + _key: key, value: { $in: values }, + }, { + projection: { _id: 0, value: 1 }, + }).toArray(); var isMember = {}; results.forEach(function (item) { @@ -332,7 +340,11 @@ module.exports = function (module) { return []; } value = helpers.valueToString(value); - const results = await module.client.collection('objects').find({ _key: { $in: keys }, value: value }, { projection: { _id: 0, score: 0 } }).toArray(); + const results = await module.client.collection('objects').find({ + _key: { $in: keys }, value: value, + }, { + projection: { _id: 0, _key: 1, value: 1 }, + }).toArray(); var isMember = {}; results.forEach(function (item) { @@ -351,7 +363,7 @@ module.exports = function (module) { const data = await module.client.collection('objects').find({ _key: keys.length === 1 ? keys[0] : { $in: keys }, - }, { projection: { _id: 0, score: 0 } }).sort({ score: 1 }).toArray(); + }, { projection: { _id: 0, _key: 1, value: 1 } }).toArray(); var sets = {}; data.forEach(function (set) { diff --git a/src/database/mongo/sorted/union.js b/src/database/mongo/sorted/union.js index 116e1e011f..523d37ee16 100644 --- a/src/database/mongo/sorted/union.js +++ b/src/database/mongo/sorted/union.js @@ -10,7 +10,6 @@ module.exports = function (module) { { $match: { _key: { $in: keys } } }, { $group: { _id: { value: '$value' } } }, { $group: { _id: null, count: { $sum: 1 } } }, - { $project: { _id: 0, count: '$count' } }, ]).toArray(); return Array.isArray(data) && data.length ? data[0].count : 0; }; diff --git a/test/database/sorted.js b/test/database/sorted.js index 922c70a9cb..c8d3d4c5cf 100644 --- a/test/database/sorted.js +++ b/test/database/sorted.js @@ -992,21 +992,12 @@ describe('Sorted Set methods', function () { }); }); - it('should remove value from multiple keys', function (done) { - db.sortedSetAdd('multiTest3', [1, 2, 3, 4], ['one', 'two', 'three', 'four'], function (err) { - assert.ifError(err); - db.sortedSetAdd('multiTest4', [3, 4, 5, 6], ['three', 'four', 'five', 'six'], function (err) { - assert.ifError(err); - db.sortedSetRemove(['multiTest3', 'multiTest4'], 'three', function (err) { - assert.ifError(err); - db.getSortedSetsMembers(['multiTest3', 'multiTest4'], function (err, members) { - assert.ifError(err); - assert.deepEqual(members, [['one', 'two', 'four'], ['four', 'five', 'six']]); - done(); - }); - }); - }); - }); + it('should remove value from multiple keys', async function () { + await db.sortedSetAdd('multiTest3', [1, 2, 3, 4], ['one', 'two', 'three', 'four']); + await db.sortedSetAdd('multiTest4', [3, 4, 5, 6], ['three', 'four', 'five', 'six']); + await db.sortedSetRemove(['multiTest3', 'multiTest4'], 'three'); + assert.deepStrictEqual(await db.getSortedSetRange('multiTest3', 0, -1), ['one', 'two', 'four']); + assert.deepStrictEqual(await db.getSortedSetRange('multiTest4', 0, -1), ['four', 'five', 'six']); }); it('should remove multiple values from multiple keys', function (done) {