Skip to content
26 changes: 26 additions & 0 deletions src/utils/filter/getFilter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,32 @@ const buildMongoFilter = (filter: any, fields: any[]): any => {
return { [fieldName]: { $exists: true, $ne: '' } };
}
}
// case 'in': {
// value = Array.isArray(value) ? value : [value];
// return {
// $or: [
// { [fieldName]: { $in: value } },
// {
// [fieldName]: {
// $in: value.map((x) => new mongoose.Types.ObjectId(x)),
// },
// },
// ],
// };
// }
// case 'notin': {
// value = Array.isArray(value) ? value : [value];
// return {
// $or: [
// { [fieldName]: { $nin: value } },
// {
// [fieldName]: {
// $nin: value.map((x) => new mongoose.Types.ObjectId(x)),
// },
// },
// ],
// };
// }
default: {
return;
}
Expand Down
9 changes: 8 additions & 1 deletion src/utils/schema/resolvers/Query/getFilter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -428,16 +428,23 @@ const buildMongoFilter = (
}
}
case 'in': {
if (isAttributeFilter)
if (isAttributeFilter) {
return {
[fieldName]: { $regex: attrValue, $options: 'i' },
};
} else {
value = Array.isArray(value) ? value : [value];
return { [fieldName]: { $in: value } };
}
}
case 'notin': {
if (isAttributeFilter) {
return {
[fieldName]: { $not: { $regex: attrValue, $options: 'i' } },
};
} else {
value = Array.isArray(value) ? value : [value];
return { [fieldName]: { $nin: value } };
}
}
case 'isempty': {
Expand Down