Skip to content

Commit 874d10f

Browse files
committed
Check expected type is array from Parse Format Schema
1 parent 4371ca1 commit 874d10f

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

src/Adapters/Storage/Mongo/MongoTransform.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,10 @@ function transformQueryKeyValue(schema, className, key, value, { validate } = {}
195195
(!expected && value && value.__type == 'Pointer')) {
196196
key = '_p_' + key;
197197
}
198-
const expectedTypeIsArray = (expected && expected.type === 'Array');
198+
const expectedTypeIsArray =
199+
parseFormatSchema &&
200+
parseFormatSchema.fields[key] &&
201+
parseFormatSchema.fields[key].type === 'Array'
199202

200203
// Handle query constraints
201204
if (transformConstraint(value, expectedTypeIsArray) !== CannotTransform) {

src/Controllers/DatabaseController.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,8 @@ DatabaseController.prototype.find = function(className, query, {
654654
if (!isMaster) {
655655
query = addReadACL(query, aclGroup);
656656
}
657-
return schemaController.getOneSchema(className)
657+
return schemaController.reloadData()
658+
.then(() => schemaController.getOneSchema(className))
658659
.catch(error => {
659660
// If the schema doesn't exist, pretend it exists with no fields. This behaviour
660661
// will likely need revisiting.
@@ -664,7 +665,7 @@ DatabaseController.prototype.find = function(className, query, {
664665
throw error;
665666
})
666667
.then(parseFormatSchema => {
667-
let mongoWhere = this.transform.transformWhere(schemaController, className, query, parseFormatSchema);
668+
let mongoWhere = this.transform.transformWhere(schemaController, className, query, {}, parseFormatSchema);
668669
if (count) {
669670
delete mongoOptions.limit;
670671
return collection.count(mongoWhere, mongoOptions);

0 commit comments

Comments
 (0)