このドキュメントはAIによって翻訳されました。正確な情報については英語版をご参照ください。
現在の RunJS 実行コンテキストにバインドされているデータソースインスタンス(DataSource)です。現在のデータソース内でのコレクションやフィールドのメタデータへのアクセス、およびコレクション設定の管理に使用されます。通常、現在のページやブロックで選択されているデータソース(例:メインデータベース main)に対応します。
| シーン | 説明 |
|---|---|
| 単一データソースの操作 | 現在のデータソースが既知である場合に、コレクションやフィールドのメタデータを取得します。 |
| コレクション管理 | 現在のデータソース配下のコレクションを取得、追加、更新、削除します。 |
| パスによるフィールド取得 | collectionName.fieldPath 形式を使用してフィールド定義を取得します(関連パスをサポート)。 |
注意:
ctx.dataSourceは現在のコンテキストにおける単一のデータソースを表します。他のデータソースを列挙またはアクセスする必要がある場合は、ctx.dataSourceManager を使用してください。
| プロパティ | 型 | 説明 |
|---|---|---|
key | string | データソースのキー(例: 'main') |
name | string | key と同じ |
displayName | string | 表示名(i18n 対応) |
flowEngine | FlowEngine | 現在の FlowEngine インスタンス |
| メソッド | 説明 |
|---|---|
getCollections() | 現在のデータソース配下のすべてのコレクションを取得します(ソート済み、非表示はフィルタリング済み)。 |
getCollection(name) | 名前でコレクションを取得します。name に collectionName.fieldName を指定して、関連先のターゲットコレクションを取得することも可能です。 |
getAssociation(associationName) | collectionName.fieldName 形式で関連フィールドの定義を取得します。 |
getCollectionField(fieldPath) | collectionName.fieldPath 形式でフィールド定義を取得します。users.profile.avatar のような関連パスをサポートしています。 |
| ニーズ | 推奨される使用法 |
|---|---|
| 現在のコンテキストにバインドされた単一のデータソース | ctx.dataSource |
| すべてのデータソースへのエントリポイント | ctx.dataSourceManager |
| 現在のデータソース内でコレクションを取得 | ctx.dataSource.getCollection(name) |
| データソースをまたいでコレクションを取得 | ctx.dataSourceManager.getCollection(dataSourceKey, collectionName) |
| 現在のデータソース内でフィールドを取得 | ctx.dataSource.getCollectionField('users.profile.avatar') |
| データソースをまたいでフィールドを取得 | ctx.dataSourceManager.getCollectionField('main.users.profile.avatar') |
getCollectionField(fieldPath) のパス形式は collectionName.fieldPath です。最初のセグメントがコレクション名で、それ以降がフィールドパス(user.name のような関連を含むパス)となります。getCollection(name) は collectionName.fieldName 形式をサポートしており、関連フィールドのターゲットコレクションを返します。ctx.dataSource は、通常現在のブロックまたはページのデータソースによって決定されます。コンテキストにデータソースがバインドされていない場合は undefined になる可能性があるため、使用前に null チェックを行うことをお勧めします。