このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
フィールド
概览
コレクションのフィールド管理クラス(抽象クラス)です。すべてのフィールドタイプの基底クラスでもあり、他の任意のフィールドタイプはこのクラスを継承して実装されます。
フィールドをカスタマイズする方法については、[フィールドタイプを拡張する]をご参照ください。
コンストラクター
通常、開発者が直接呼び出すことはありません。主に db.collection({ fields: [] }) メソッドを介してプロキシとして呼び出されます。
フィールドを拡張する際は、主に Field 抽象クラスを継承し、それを Database インスタンスに登録することで実装されます。
シグネチャ
constructor(options: FieldOptions, context: FieldContext)
パラメータ
インスタンスメンバー
name
フィールド名。
type
フィールドタイプ。
dataType
フィールドのデータベース保存タイプ。
options
フィールドの初期化設定パラメータ。
context
フィールドコンテキストオブジェクト。
設定メソッド
on()
コレクションイベントに基づくショートカット定義方法です。これは db.on(this.collection.name + '.' + eventName, listener) と同等です。
継承時にこのメソッドをオーバーライドする必要は通常ありません。
シグネチャ
on(eventName: string, listener: (...args: any[]) => void)
パラメータ
off()
コレクションイベントに基づくショートカット削除方法です。これは db.off(this.collection.name + '.' + eventName, listener) と同等です。
継承時にこのメソッドをオーバーライドする必要は通常ありません。
シグネチャ
off(eventName: string, listener: (...args: any[]) => void)
パラメータ
bind()
フィールドがコレクションに追加されたときに実行される内容です。通常、コレクションイベントリスナーの追加やその他の処理に使用されます。
継承時には、対応する super.bind() メソッドを最初に呼び出す必要があります。
シグネチャ
bind()
unbind()
フィールドがコレクションから削除されたときに実行される内容です。通常、コレクションイベントリスナーの削除やその他の処理に使用されます。
継承時には、対応する super.unbind() メソッドを最初に呼び出す必要があります。
シグネチャ
unbind()
get()
フィールドの設定項目の値を取得します。
シグネチャ
get(key: string): any
パラメータ
例
merge()
フィールドの設定項目の値をマージします。
シグネチャ
merge(options: { [key: string]: any }): void
パラメータ
例
remove()
コレクションからフィールドを削除します(メモリからのみ削除)。
例
データベースメソッド
removeFromDb()
データベースからフィールドを削除します。
シグネチャ
removeFromDb(options?: Transactionable): Promise<void>
パラメータ
existsInDb()
フィールドがデータベースに存在するかどうかを判断します。
シグネチャ
existsInDb(options?: Transactionable): Promise<boolean>
パラメータ
組み込みフィールドタイプ一覧
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 メソッドに基づいてパスワードを暗号化します。
例
パラメータ
'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'
多対多関連タイプ。中間テーブルを使用して両側の外部キーを保存します。既存のテーブルを中間テーブルとして指定しない場合、中間テーブルが自動的に作成されます。
例
どの記事にも複数のタグを付けられ、どのタグも複数の記事に追加できます。

