crud-node
  • ⚡Overview
  • ✨Installation
  • 🧰Schema (soon)
  • ☄️Quick Start
  • Guides
    • 🪄Guides (soon)
  • Adapters
    • 💫Adapters
      • Availability 🆕
      • MySQL
      • MySQLX
      • Mongo (soon)
      • Postgres (soon)
      • Cassandra (soon)
      • Oracle (soon)
      • SqlLite (soon)
      • Couchdb (soon)
  • Reference
    • ⭐API Reference
      • Availability 🆕
      • init
      • toString
      • createDocument
      • createDocumentIfNotExists 🆕
      • deleteDocument
      • deleteAll 🆕
      • updateDocument
      • getDocument
      • getDocuments
      • getDocumentByCriteria 🆕
      • searchDocumentsByCriteria 🆕
      • searchDocuments 🆕
      • groupByDocuments 🆕
      • filterDocumentsByCriteria 🆕
      • filterDocuments 🆕
      • filterDocumentsByIds 🆕
      • fetchAll 🆕
      • findDocument 🆕
      • existsDocument
      • getCount
      • getTotal
      • callStoredProcedure 🆕
  • 📃Changelog
  • 📋Roadmap
Powered by GitBook
On this page
  1. Reference
  2. API Reference

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);
PreviousgroupByDocuments 🆕NextfilterDocuments 🆕

Last updated 2 years ago

⭐