From c69fa811e55adf33ef1a234146a476e865eb128a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 23 Dec 2024 20:29:42 -0500 Subject: [PATCH] fix: convert to str than filter prevent empty strings from getting passed to mongodb https://github.com/NodeBB/NodeBB/issues/13007#issuecomment-2560503754 --- src/database/mongo/hash.js | 3 +-- test/database/hash.js | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/database/mongo/hash.js b/src/database/mongo/hash.js index b428d9926b..e430e94786 100644 --- a/src/database/mongo/hash.js +++ b/src/database/mongo/hash.js @@ -194,14 +194,13 @@ module.exports = function (module) { if (!key || (Array.isArray(key) && !key.length) || !Array.isArray(fields) || !fields.length) { return; } - fields = fields.filter(Boolean); + fields = fields.map(helpers.fieldToString).filter(Boolean); if (!fields.length) { return; } const data = {}; fields.forEach((field) => { - field = helpers.fieldToString(field); data[field] = ''; }); if (Array.isArray(key)) { diff --git a/test/database/hash.js b/test/database/hash.js index 947ac2b2d3..ab422e1ae6 100644 --- a/test/database/hash.js +++ b/test/database/hash.js @@ -521,6 +521,7 @@ describe('Hash methods', () => { it('should not error if fields is empty array', async () => { await db.deleteObjectFields('someKey', []); + await db.deleteObjectField('someKey', []); }); it('should not error if key is undefined', (done) => {