このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
コレクションのフィールド管理クラス(抽象クラス)です。すべてのフィールドタイプの基底クラスでもあり、他の任意のフィールドタイプはこのクラスを継承して実装されます。
フィールドをカスタマイズする方法については、[フィールドタイプを拡張する]をご参照ください。
通常、開発者が直接呼び出すことはありません。主に db.collection({ fields: [] }) メソッドを介してプロキシとして呼び出されます。
フィールドを拡張する際は、主に Field 抽象クラスを継承し、それを Database インスタンスに登録することで実装されます。
シグネチャ
constructor(options: FieldOptions, context: FieldContext)パラメータ
| パラメータ名 | 型 | デフォルト値 | 説明 |
|---|---|---|---|
options | FieldOptions | - | フィールド設定オブジェクト |
options.name | string | - | フィールド名 |
options.type | string | - | フィールドタイプ。db に登録されているフィールドタイプ名に対応します。 |
context | FieldContext | - | フィールドコンテキストオブジェクト |
context.database | Database | - | データベースインスタンス |
context.collection | Collection | - | コレクションインスタンス |
nameフィールド名。
typeフィールドタイプ。
dataTypeフィールドのデータベース保存タイプ。
optionsフィールドの初期化設定パラメータ。
contextフィールドコンテキストオブジェクト。
on()コレクションイベントに基づくショートカット定義方法です。これは db.on(this.collection.name + '.' + eventName, listener) と同等です。
継承時にこのメソッドをオーバーライドする必要は通常ありません。
シグネチャ
on(eventName: string, listener: (...args: any[]) => void)パラメータ
| パラメータ名 | 型 | デフォルト値 | 説明 |
|---|---|---|---|
eventName | string | - | イベント名 |
listener | (...args: any[]) => void | - | イベントリスナー |
off()コレクションイベントに基づくショートカット削除方法です。これは db.off(this.collection.name + '.' + eventName, listener) と同等です。
継承時にこのメソッドをオーバーライドする必要は通常ありません。
シグネチャ
off(eventName: string, listener: (...args: any[]) => void)パラメータ
| パラメータ名 | 型 | デフォルト値 | 説明 |
|---|---|---|---|
eventName | string | - | イベント名 |
listener | (...args: any[]) => void | - | イベントリスナー |
bind()フィールドがコレクションに追加されたときに実行される内容です。通常、コレクションイベントリスナーの追加やその他の処理に使用されます。
継承時には、対応する super.bind() メソッドを最初に呼び出す必要があります。
シグネチャ
bind()unbind()フィールドがコレクションから削除されたときに実行される内容です。通常、コレクションイベントリスナーの削除やその他の処理に使用されます。
継承時には、対応する super.unbind() メソッドを最初に呼び出す必要があります。
シグネチャ
unbind()get()フィールドの設定項目の値を取得します。
シグネチャ
get(key: string): anyパラメータ
| パラメータ名 | 型 | デフォルト値 | 説明 |
|---|---|---|---|
key | string | - | 設定項目名 |
例
merge()フィールドの設定項目の値をマージします。
シグネチャ
merge(options: { [key: string]: any }): voidパラメータ
| パラメータ名 | 型 | デフォルト値 | 説明 |
|---|---|---|---|
options | { [key: string]: any } | - | マージする設定項目オブジェクト |
例
remove()コレクションからフィールドを削除します(メモリからのみ削除)。
例
removeFromDb()データベースからフィールドを削除します。
シグネチャ
removeFromDb(options?: Transactionable): Promise<void>パラメータ
| パラメータ名 | 型 | デフォルト値 | 説明 |
|---|---|---|---|
options.transaction? | Transaction | - | トランザクションインスタンス |
existsInDb()フィールドがデータベースに存在するかどうかを判断します。
シグネチャ
existsInDb(options?: Transactionable): Promise<boolean>パラメータ
| パラメータ名 | 型 | デフォルト値 | 説明 |
|---|---|---|---|
options.transaction? | Transaction | - | トランザクションインスタンス |
NocoBase には、いくつかの一般的なフィールドタイプが組み込まれています。コレクションのフィールドを定義する際に、対応する type 名を使用してタイプを指定できます。フィールドタイプによってパラメータ設定が異なりますので、詳細は以下のリストをご参照ください。
以下で別途説明されているものを除き、すべてのフィールドタイプの構成項目は Sequelize にそのまま渡されます。そのため、Sequelize がサポートするすべてのフィールド構成項目(例: allowNull、defaultValue など)をここで使用できます。
また、サーバー側のフィールドタイプは主にデータベースストレージと一部のアルゴリズムの問題を解決するものであり、フロントエンドのフィールド表示タイプや使用されるコンポーネントとは基本的に関係ありません。フロントエンドのフィールドタイプについては、チュートリアルの該当する説明をご参照ください。
'boolean'真偽値タイプ。
例
'integer'整数型(32ビット)。
例
'bigInt'長整数型(64ビット)。
例
'double'倍精度浮動小数点型(64ビット)。
例
'real'実数型(PostgreSQLのみ)。
'decimal'10進数型。
'string'文字列型。ほとんどのデータベースの VARCHAR 型に相当します。
例
'text'テキスト型。ほとんどのデータベースの TEXT 型に相当します。
例
'password'パスワードタイプ(NocoBase拡張)。Node.js のネイティブ crypto パッケージの scrypt メソッドに基づいてパスワードを暗号化します。
例
パラメータ
| パラメータ名 | 型 | デフォルト値 | 説明 |
|---|---|---|---|
length | number | 64 | 文字長 |
randomBytesSize | number | 8 | ランダムバイトサイズ |
'date'日付タイプ。
'time'時間タイプ。
'array'配列タイプ(PostgreSQLのみ)。
'json'JSONタイプ。
'jsonb'JSONBタイプ(PostgreSQLのみ。その他は 'json' タイプと互換性があります)。
'uuid'UUIDタイプ。
'uid'UIDタイプ(NocoBase拡張)。短いランダム文字列識別子タイプ。
'formula'数式タイプ(NocoBase拡張)。mathjs に基づく数式計算を設定できます。数式では、同じレコード内の他の列の値を参照して計算に参加させることができます。
例
'radio'ラジオタイプ(NocoBase拡張)。コレクション全体で、このフィールドの値が true となるデータは最大1行のみです。その他はすべて false または null になります。
例
システム全体で root とマークされたユーザーは1人だけです。他のユーザーの root 値が true に変更されると、それまで root が true だった他のすべてのレコードは false に変更されます。
'sort'ソートタイプ(NocoBase拡張)。整数値に基づいてソートします。新しいレコードには自動的に新しいシーケンス番号が生成され、データを移動する際にはシーケンス番号が再配置されます。
コレクションが sortable オプションを定義している場合、対応するフィールドも自動的に生成されます。
例
記事は所属ユーザーに基づいてソート可能です。
'virtual'仮想タイプ。実際にデータを保存しません。特殊な getter/setter 定義時にのみ使用されます。
'belongsTo'多対一関連タイプ。外部キーは自身のテーブルに保存されます。hasOne/hasMany とは対照的です。
例
どの記事も特定の作者に属します。
'hasOne'一対一関連タイプ。外部キーは関連コレクションに保存されます。belongsTo とは対照的です。
例
すべてのユーザーはプロフィールを1つ持っています。
'hasMany'一対多関連タイプ。外部キーは関連コレクションに保存されます。belongsTo とは対照的です。
例
どのユーザーも複数の記事を所有できます。
'belongsToMany'多対多関連タイプ。中間テーブルを使用して両側の外部キーを保存します。既存のテーブルを中間テーブルとして指定しない場合、中間テーブルが自動的に作成されます。
例
どの記事にも複数のタグを付けられ、どのタグも複数の記事に追加できます。