logologo
スタート
マニュアル
開発
プラグイン
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
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
フローモデル
フローリソース

@nocobase/logger

ロガー

@nocobase/server

AppCommand
アプリケーション
AuditManager
コンテキスト
マイグレーション
プラグイン

@nocobase/sdk

Auth
ストレージ
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

ブール型フィールドの値が偽であるかどうかを判定します。フィールドの値がfalse、0、NULLのいずれかである場合、$isFalsy: trueと判定されます。

例

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

#$isTruly

ブール型フィールドの値が真であるかどうかを判定します。フィールドの値が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

フィールドの値が指定された2つの値の間にあるかどうかを判定します。SQLのBETWEENに相当します。

例

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

#$notBetween

フィールドの値が指定された2つの値の間にないかどうかを判定します。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: '三字経',
    },
  },
});

#$notStartsWith

文字列フィールドが指定された部分文字列で始まらないかどうかを判定します。

例

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

#$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,
    },
  },
});