Add comma to escapeFieldName for NeDBv4 (#6803)
PTR committed
Feb 22, 2025 at 17:59 UTC
e0e8a3fcaa2947b8c77fb5eb6c7a3f286782c42e
1 file changed
+4
-4
common.js
+4
-4
@@ -155,12 +155,12 @@ module.exports.objKeysToLower = function (obj, exceptions, parent) {
155
return obj;
156
};
157
158
-// Escape and unescape field names so there are no invalid characters for MongoDB
159
-module.exports.escapeFieldName = function (name) { if ((name.indexOf('%') == -1) && (name.indexOf('.') == -1) && (name.indexOf('$') == -1)) return name; return name.split('%').join('%25').split('.').join('%2E').split('$').join('%24'); };
160
-module.exports.unEscapeFieldName = function (name) { if (name.indexOf('%') == -1) return name; return name.split('%2E').join('.').split('%24').join('$').split('%25').join('%'); };
158
+// Escape and unescape field names so there are no invalid characters for MongoDB/NeDB ("$", ",", ".", see https://github.com/seald/nedb/tree/master?tab=readme-ov-file#inserting-documents)
159
+module.exports.escapeFieldName = function (name) { if ((name.indexOf(',') == -1) && (name.indexOf('%') == -1) && (name.indexOf('.') == -1) && (name.indexOf('$') == -1)) return name; return name.split('%').join('%25').split('.').join('%2E').split('$').join('%24').split(',').join('%2C'); };
160
+module.exports.unEscapeFieldName = function (name) { if (name.indexOf('%') == -1) return name; return name.split('%2C').join(',').split('%2E').join('.').split('%24').join('$').split('%25').join('%'); };
161
162
// Escape all links, SSH and RDP usernames
163
-// This is required for databases like NeDB that don't accept "." as part of a field name.
163
+// This is required for databases like NeDB that don't accept "." or "," as part of a field name.
164
module.exports.escapeLinksFieldNameEx = function (docx) { if ((docx.links == null) && (docx.ssh == null) && (docx.rdp == null)) { return docx; } return module.exports.escapeLinksFieldName(docx); };
165
module.exports.escapeLinksFieldName = function (docx) {
166
var doc = Object.assign({}, docx);