Skip to content

Commit 30cda6c

Browse files
committed
fix: fix mongo filter for arrays of numbers
1 parent 5f97832 commit 30cda6c

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

adminforth/dataConnectors/mongo.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,10 +286,15 @@ class MongoConnector extends AdminForthBaseConnector implements IAdminForthDataS
286286
return { $expr: { [mongoExprOp]: [left, right] } };
287287
}
288288
const column = resource.dataSourceColumns.find((col) => col.name === (filter as IAdminForthSingleFilter).field);
289+
const filterValue = (filter as IAdminForthSingleFilter).value;
289290
if ([AdminForthDataTypes.INTEGER, AdminForthDataTypes.DECIMAL, AdminForthDataTypes.FLOAT].includes(column.type)) {
290-
return { [(filter as IAdminForthSingleFilter).field]: this.OperatorsMap[filter.operator](+(filter as IAdminForthSingleFilter).value) };
291+
// Handle array values for IN/NIN operators
292+
const convertedValue = Array.isArray(filterValue)
293+
? filterValue.map(v => +v)
294+
: +filterValue;
295+
return { [(filter as IAdminForthSingleFilter).field]: this.OperatorsMap[filter.operator](convertedValue) };
291296
}
292-
return { [(filter as IAdminForthSingleFilter).field]: this.OperatorsMap[filter.operator]((filter as IAdminForthSingleFilter).value) };
297+
return { [(filter as IAdminForthSingleFilter).field]: this.OperatorsMap[filter.operator](filterValue) };
293298
}
294299

295300
// filter is a AndOr filter

0 commit comments

Comments
 (0)