filterDocumentsByCriteria 🆕
Filter documents by SQL WHERE statement. Case Sensitive.
Throws `errorNoCriteriaProvided` if props are empty.
Signature
filterDocumentsByCriteria(session: MySQLSession, filter: FilterCriteria, pagination?: IOffsetPagination, sort?: Sort): Promise<IPaginatedSet<IDocument<S>>>
filterDocumentsByCriteria(session: MySQLXSession, filter: FilterCriteria, pagination?: IOffsetPagination, sort?: Sort): Promise<IPaginatedSet<IDocument<S>>>;
Example
// officeRouter.{ts|js}
import { Condition, Filter, OffsetPagination, SortBy } from 'crud-node';
import { officeController } from './officeController';
import { OfficeProps } from './schemas/office';
const transacted = true;
await db.usingSession(async (session) => {
const filterOfficesInNYC = Filter.toCriteria(
Filter.and(Condition.like('address.city', '%New York%'), Condition.gre(OfficeProps.places, 1)),
);
const sortOfficesByAvailablePlaces = SortBy().asc(OfficeProps.places).toCriteria();
const pagination = OffsetPagination(1, 10);
const data = await officeController.filterDocumentsByCriteria(
session,
filterOfficesInNYC,
pagination,
sortOfficesByAvailablePlaces,
);
return data;
}, transacted);
// officeRouter.{ts|js}
import { Condition, Filter, OffsetPagination, SortBy } from 'crud-node';
import { officeController } from './officeController';
import { OfficeProps } from './schemas/office';
const transacted = true;
await db.usingSession(async (session) => {
const filterOfficesInNYC = Filter.toCriteria(
Filter.and(Condition.like('address.city', '%New York%'), Condition.gre(OfficeProps.places, 1)),
);
const sortOfficesByAvailablePlaces = SortBy().asc(OfficeProps.places).toCriteria();
const pagination = OffsetPagination(1, 10);
const data = await officeController.filterDocumentsByCriteria(
session,
filterOfficesInNYC,
pagination,
sortOfficesByAvailablePlaces,
);
return data;
}, transacted);
Last updated