.meta()
クエリインスタンスを実行する際に、Waterline に追加のオプションを提供します。クエリインスタンス
.meta(options)
引数 | 型 | 詳細 | |
---|---|---|---|
1 | options | オプションの辞書(プレーンなJSオブジェクト)。サポートされているすべてのオプション(別名「メタキー」)については、以下の表を参照してください。 |
オプション | 型 | デフォルト | 詳細 | |
---|---|---|---|---|
fetch | false | .update() 、.create() 、.createEach() 、または.destroy() クエリを実行する際、データベースアダプタに更新/削除されたすべてのレコードを返すようにするには、これをtrue に設定します。それ以外の場合は、.exec() コールバックの第2引数はundefined になります。警告:このキーを有効にすると、多数のレコードに影響を与える更新/削除クエリのパフォーマンスに問題が発生する可能性があります。 |
||
cascade | false | .destroy() でtrue に設定すると、Waterlineは削除された各レコードに対して「仮想カスケード」を実行します。したがって、双方向の複数アソシエーション(1対多または多対多)を持つレコードを削除すると、他のレコードへのすべてのリンクもクリーンに削除されます(結合テーブルの行を削除するか、外部キーの値をnull に設定します)。データベースサイズが問題である場合、またはレコードの主キーが再利用される可能性がある場合に、これは望ましい可能性がありますが、より多くのクエリの実行を伴うため、 .destroy() 呼び出しのパフォーマンスに悪影響を与える可能性があります。cascade メタキーは、カスケード削除をネイティブ機能としてサポートしていないMongoDBなどのデータベースでのみ使用してください。カスケード削除が必要で、データベースがネイティブにサポートしている場合(例:MySQLまたはPostgreSQL)、CASCADE制約を物理レイヤー(例:phpMyAdmin、Sequel Pro、mySQLプロンプトなど)に追加するだけで、ランタイムでWaterlineの仮想カスケードに依存するよりもパフォーマンスが向上します。 |
||
skipAllLifecycleCallbacks | false | クエリの実行中にライフサイクルコールバックが実行されないようにするには、true に設定します。 |
||
skipRecordVerification | false | アダプタから返されたレコードのWaterlineによるクエリ後の検証パスをスキップするには、true に設定します。sails-hook-ormの自動マイグレーションなどのツールに役立ちます。または、データベース内の既存のレコードがモデル定義と一致しないことがわかっているユースケースで警告を無効にする場合に役立ちます。 |
||
skipExpandingDefaultSelectClause | false | ステージ3クエリ(つまり、アダプタメソッドに渡されるクエリ)を作成する際に、Waterlineが基準のselect 句の展開を強制的にスキップするには、true に設定します。通常、モデルがschema: true を宣言している場合、S2Qにファクトリデフォルトのselect /omit 句が含まれている場合でも(元のクエリに明示的なselect またはomit 句が含まれていない場合と同じです)、S3Qのselect 句は列名の配列に展開されます。sails-hook-ormの自動マイグレーションなどのツールで役立ち、必ずしも現在の属性定義のセットに含まれていないプロパティに一時的にアクセスする場合に役立ちます。 **警告:このフラグをWebアプリケーションのバックエンドで使用しないでください。または少なくともサポートを求めてください。** |
||
decrypt | false | レコード内の自動暗号化されたデータを復号化するには、true に設定します。 |
||
encryptWith | 'default' | この特定のクエリに対する暗号化に使用するカスタムキーのID。(復号化の場合、復号化されるデータに基づいて常に適切なキーが使用されます。) | ||
makeLikeModifierCaseInsensitive | false | クエリを大文字と小文字を区別しないようにするには、true に設定します(MongoDBアダプタでのみ使用)。 |
var newUser = await User.create({name: 'alice'})
.meta({fetch: true});
return res.json(newUser);
.fetch()
メソッドは.meta({fetch: true})
の省略形です。fetch
メタキーがtrue
でない場合にcascade
が機能するには、実際に.destroy()
を実行する前に、Waterlineは削除されるレコードのIDを取得するために、追加の.find().select('id')
を実行する必要があります。.meta()
クエリメソッドを使用する代わりに、明示的なコールバックの後に辞書を渡すことで、クエリにメタキーを設定することもできます。例:User.create({name: 'alice'}, function(err, newUser){/*...*/}, { fetch: true })