logologo
시작
가이드
개발
플러그인
API
홈
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
시작
가이드
개발
플러그인
API
홈
logologo
API 개요

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
캐시

@nocobase/cli

NocoBase CLI
전역 환경 변수

@nocobase/client

애플리케이션
플러그인

@nocobase/database

컬렉션
필드

interfaces

BaseInterface
필터 연산자

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
리포지토리

shared

create-options
destroy-options
find-one
find-options
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
DataSource (추상 클래스)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

데이터 소스 관리자
플로우 컨텍스트
FlowEngine
FlowModel
플로우 리소스

@nocobase/logger

로거

@nocobase/server

AppCommand
애플리케이션
AuditManager
컨텍스트
마이그레이션
플러그인

@nocobase/sdk

Auth
Storage
Previous PageBaseInterface
Next PageRelationRepository
TIP

이 문서는 AI로 번역되었습니다. 부정확한 내용이 있을 경우 영어 버전을 참조하세요

#필터 연산자

Repository의 find, findOne, findAndCount, count 등 API의 filter 파라미터에서 사용됩니다:

const repository = db.getRepository('books');

repository.find({
  filter: {
    title: {
      $eq: '春秋',
    },
  },
});

JSON 직렬화를 지원하기 위해 NocoBase에서는 쿼리 연산자를 $ 접두사가 붙은 문자열로 식별합니다.

또한, NocoBase는 연산자를 확장할 수 있는 API를 제공합니다. 자세한 내용은 db.registerOperators()를 참조해 주세요.

#일반 연산자

#$eq

필드 값이 지정된 값과 같은지 확인합니다. SQL의 =와 같습니다.

예시

repository.find({
  filter: {
    title: {
      $eq: '春秋',
    },
  },
});

title: '春秋'와 동일합니다.

#$ne

필드 값이 지정된 값과 같지 않은지 확인합니다. SQL의 !=와 같습니다.

예시

repository.find({
  filter: {
    title: {
      $ne: '春秋',
    },
  },
});

#$is

필드 값이 지정된 값인지 확인합니다. SQL의 IS와 같습니다.

예시

repository.find({
  filter: {
    title: {
      $is: null,
    },
  },
});

#$not

필드 값이 지정된 값이 아닌지 확인합니다. SQL의 IS NOT와 같습니다.

예시

repository.find({
  filter: {
    title: {
      $not: null,
    },
  },
});

#$col

필드 값이 다른 필드의 값과 같은지 확인합니다. SQL의 =와 같습니다.

예시

repository.find({
  filter: {
    title: {
      $col: 'name',
    },
  },
});

#$in

필드 값이 지정된 배열에 포함되는지 확인합니다. SQL의 IN과 같습니다.

예시

repository.find({
  filter: {
    title: {
      $in: ['春秋', '战国'],
    },
  },
});

#$notIn

필드 값이 지정된 배열에 포함되지 않는지 확인합니다. SQL의 NOT IN과 같습니다.

예시

repository.find({
  filter: {
    title: {
      $notIn: ['春秋', '战国'],
    },
  },
});

#$empty

일반 필드가 비어 있는지 확인합니다. 문자열 필드의 경우 빈 문자열인지, 배열 필드의 경우 빈 배열인지 확인합니다.

예시

repository.find({
  filter: {
    title: {
      $empty: true,
    },
  },
});

#$notEmpty

일반 필드가 비어 있지 않은지 확인합니다. 문자열 필드의 경우 빈 문자열이 아닌지, 배열 필드의 경우 빈 배열이 아닌지 확인합니다.

예시

repository.find({
  filter: {
    title: {
      $notEmpty: true,
    },
  },
});

#논리 연산자

#$and

논리 AND 연산입니다. SQL의 AND와 같습니다.

예시

repository.find({
  filter: {
    $and: [{ title: '诗经' }, { isbn: '1234567890' }],
  },
});

#$or

논리 OR 연산입니다. SQL의 OR와 같습니다.

예시

repository.find({
  filter: {
    $or: [{ title: '诗经' }, { publishedAt: { $lt: '0000-00-00T00:00:00Z' } }],
  },
});

#불리언 타입 필드 연산자

불리언 타입 필드 (type: 'boolean')에 사용됩니다.

#$isFalsy

불리언 타입 필드 값이 거짓(falsy)인지 확인합니다. 필드 값이 false, 0, NULL인 경우 모두 $isFalsy: true로 판단됩니다.

예시

repository.find({
  filter: {
    isPublished: {
      $isFalsy: true,
    },
  },
});

#$isTruly

불리언 타입 필드 값이 참(truly)인지 확인합니다. 필드 값이 true와 1인 경우 모두 $isTruly: true로 판단됩니다.

예시

repository.find({
  filter: {
    isPublished: {
      $isTruly: true,
    },
  },
});

#숫자 타입 필드 연산자

다음과 같은 숫자 타입 필드에 사용됩니다:

  • type: 'integer'
  • type: 'float'
  • type: 'double'
  • type: 'real'
  • type: 'decimal'

#$gt

필드 값이 지정된 값보다 큰지 확인합니다. SQL의 >와 같습니다.

예시

repository.find({
  filter: {
    price: {
      $gt: 100,
    },
  },
});

#$gte

필드 값이 지정된 값보다 크거나 같은지 확인합니다. SQL의 >=와 같습니다.

예시

repository.find({
  filter: {
    price: {
      $gte: 100,
    },
  },
});

#$lt

필드 값이 지정된 값보다 작은지 확인합니다. SQL의 <와 같습니다.

예시

repository.find({
  filter: {
    price: {
      $lt: 100,
    },
  },
});

#$lte

필드 값이 지정된 값보다 작거나 같은지 확인합니다. SQL의 <=와 같습니다.

예시

repository.find({
  filter: {
    price: {
      $lte: 100,
    },
  },
});

#$between

필드 값이 지정된 두 값 사이에 있는지 확인합니다. SQL의 BETWEEN과 같습니다.

예시

repository.find({
  filter: {
    price: {
      $between: [100, 200],
    },
  },
});

#$notBetween

필드 값이 지정된 두 값 사이에 없는지 확인합니다. SQL의 NOT BETWEEN과 같습니다.

예시

repository.find({
  filter: {
    price: {
      $notBetween: [100, 200],
    },
  },
});

#문자열 타입 필드 연산자

문자열 타입 필드 (string)에 사용됩니다.

#$includes

문자열 필드에 지정된 부분 문자열이 포함되어 있는지 확인합니다.

예시

repository.find({
  filter: {
    title: {
      $includes: '三字经',
    },
  },
});

#$notIncludes

문자열 필드에 지정된 부분 문자열이 포함되어 있지 않은지 확인합니다.

예시

repository.find({
  filter: {
    title: {
      $notIncludes: '三字经',
    },
  },
});

#$startsWith

문자열 필드가 지정된 부분 문자열로 시작하는지 확인합니다.

예시

repository.find({
  filter: {
    title: {
      $startsWith: '三字经',
    },
  },
});

#$notStatsWith

문자열 필드가 지정된 부분 문자열로 시작하지 않는지 확인합니다.

예시

repository.find({
  filter: {
    title: {
      $notStatsWith: '三字经',
    },
  },
});

#$endsWith

문자열 필드가 지정된 부분 문자열로 끝나는지 확인합니다.

예시

repository.find({
  filter: {
    title: {
      $endsWith: '三字经',
    },
  },
});

#$notEndsWith

문자열 필드가 지정된 부분 문자열로 끝나지 않는지 확인합니다.

예시

repository.find({
  filter: {
    title: {
      $notEndsWith: '三字经',
    },
  },
});

#$like

필드 값에 지정된 문자열이 포함되어 있는지 확인합니다. SQL의 LIKE와 같습니다.

예시

repository.find({
  filter: {
    title: {
      $like: '计算机',
    },
  },
});

#$notLike

필드 값에 지정된 문자열이 포함되어 있지 않은지 확인합니다. SQL의 NOT LIKE와 같습니다.

예시

repository.find({
  filter: {
    title: {
      $notLike: '计算机',
    },
  },
});

#$iLike

필드 값에 지정된 문자열이 대소문자를 구분하지 않고 포함되어 있는지 확인합니다. SQL의 ILIKE와 같습니다(PostgreSQL에만 해당).

예시

repository.find({
  filter: {
    title: {
      $iLike: 'Computer',
    },
  },
});

#$notILike

필드 값에 지정된 문자열이 대소문자를 구분하지 않고 포함되어 있지 않은지 확인합니다. SQL의 NOT ILIKE와 같습니다(PostgreSQL에만 해당).

예시

repository.find({
  filter: {
    title: {
      $notILike: 'Computer',
    },
  },
});

#$regexp

필드 값이 지정된 정규 표현식과 일치하는지 확인합니다. SQL의 REGEXP와 같습니다(PostgreSQL에만 해당).

예시

repository.find({
  filter: {
    title: {
      $regexp: '^计算机',
    },
  },
});

#$notRegexp

필드 값이 지정된 정규 표현식과 일치하지 않는지 확인합니다. SQL의 NOT REGEXP와 같습니다(PostgreSQL에만 해당).

예시

repository.find({
  filter: {
    title: {
      $notRegexp: '^计算机',
    },
  },
});

#$iRegexp

필드 값이 지정된 정규 표현식과 대소문자를 구분하지 않고 일치하는지 확인합니다. SQL의 ~*와 같습니다(PostgreSQL에만 해당).

예시

repository.find({
  filter: {
    title: {
      $iRegexp: '^COMPUTER',
    },
  },
});

#$notIRegexp

필드 값이 지정된 정규 표현식과 대소문자를 구분하지 않고 일치하지 않는지 확인합니다. SQL의 !~*와 같습니다(PostgreSQL에만 해당).

예시

repository.find({
  filter: {
    title: {
      $notIRegexp: '^COMPUTER',
    },
  },
});

#날짜 타입 필드 연산자

날짜 타입 필드 (type: 'date')에 사용됩니다.

#$dateOn

날짜 필드가 특정 날짜에 해당하는지 확인합니다.

예시

repository.find({
  filter: {
    createdAt: {
      $dateOn: '2021-01-01',
    },
  },
});

#$dateNotOn

날짜 필드가 특정 날짜에 해당하지 않는지 확인합니다.

예시

repository.find({
  filter: {
    createdAt: {
      $dateNotOn: '2021-01-01',
    },
  },
});

#$dateBefore

날짜 필드가 특정 값 이전인지 확인합니다. 전달된 날짜 값보다 작은 것과 같습니다.

예시

repository.find({
  filter: {
    createdAt: {
      $dateBefore: '2021-01-01T00:00:00.000Z',
    },
  },
});

#$dateNotBefore

날짜 필드가 특정 값 이전이 아닌지 확인합니다. 전달된 날짜 값보다 크거나 같은 것과 같습니다.

예시

repository.find({
  filter: {
    createdAt: {
      $dateNotBefore: '2021-01-01T00:00:00.000Z',
    },
  },
});

#$dateAfter

날짜 필드가 특정 값 이후인지 확인합니다. 전달된 날짜 값보다 큰 것과 같습니다.

예시

repository.find({
  filter: {
    createdAt: {
      $dateAfter: '2021-01-01T00:00:00.000Z',
    },
  },
});

#$dateNotAfter

날짜 필드가 특정 값 이후가 아닌지 확인합니다. 전달된 날짜 값보다 작거나 같은 것과 같습니다.

예시

repository.find({
  filter: {
    createdAt: {
      $dateNotAfter: '2021-01-01T00:00:00.000Z',
    },
  },
});

#배열 타입 필드 연산자

배열 타입 필드 (type: 'array')에 사용됩니다.

#$match

배열 필드의 값이 지정된 배열의 값과 일치하는지 확인합니다.

예시

repository.find({
  filter: {
    tags: {
      $match: ['文学', '历史'],
    },
  },
});

#$notMatch

배열 필드의 값이 지정된 배열의 값과 일치하지 않는지 확인합니다.

예시

repository.find({
  filter: {
    tags: {
      $notMatch: ['文学', '历史'],
    },
  },
});

#$anyOf

배열 필드의 값이 지정된 배열의 값 중 하나라도 포함하는지 확인합니다.

예시

repository.find({
  filter: {
    tags: {
      $anyOf: ['文学', '历史'],
    },
  },
});

#$noneOf

배열 필드의 값이 지정된 배열의 값 중 어느 것도 포함하지 않는지 확인합니다.

예시

repository.find({
  filter: {
    tags: {
      $noneOf: ['文学', '历史'],
    },
  },
});

#$arrayEmpty

배열 필드가 비어 있는지 확인합니다.

예시

repository.find({
  filter: {
    tags: {
      $arrayEmpty: true,
    },
  },
});

#$arrayNotEmpty

배열 필드가 비어 있지 않은지 확인합니다.

예시

repository.find({
  filter: {
    tags: {
      $arrayNotEmpty: true,
    },
  },
});

#관계 필드 타입 연산자

관계의 존재 여부를 확인하는 데 사용되며, 필드 타입은 다음과 같습니다:

  • type: 'hasOne'
  • type: 'hasMany'
  • type: 'belongsTo'
  • type: 'belongsToMany'

#$exists

관계 데이터가 존재하는지 확인합니다.

예시

repository.find({
  filter: {
    author: {
      $exists: true,
    },
  },
});

#$notExists

관계 데이터가 존재하지 않는지 확인합니다.

예시

repository.find({
  filter: {
    author: {
      $notExists: true,
    },
  },
});