diff --git a/spec/ParseQuery.spec.js b/spec/ParseQuery.spec.js index 0dcc83639c..6b43fe4418 100644 --- a/spec/ParseQuery.spec.js +++ b/spec/ParseQuery.spec.js @@ -1715,6 +1715,16 @@ describe('Parse.Query testing', () => { }); }); + it('order by non-existing string', async () => { + const strings = ['a', 'b', 'c', 'd']; + const makeBoxedNumber = function (num, i) { + return new BoxedNumber({ number: num, string: strings[i] }); + }; + await Parse.Object.saveAll([3, 1, 3, 2].map(makeBoxedNumber)); + const results = await new Parse.Query(BoxedNumber).ascending('foo').find(); + expect(results.length).toBe(4); + }); + it('order by descending number then ascending string', function (done) { const strings = ['a', 'b', 'c', 'd']; const makeBoxedNumber = function (num, i) { diff --git a/src/Controllers/DatabaseController.js b/src/Controllers/DatabaseController.js index 25b97d0ec7..7dbd789c3b 100644 --- a/src/Controllers/DatabaseController.js +++ b/src/Controllers/DatabaseController.js @@ -1207,6 +1207,9 @@ class DatabaseController { `Invalid field name: ${fieldName}.` ); } + if (!schema.fields[fieldName.split('.')[0]] && fieldName !== 'score') { + delete sort[fieldName]; + } }); return (isMaster ? Promise.resolve()