![見出し画像](https://assets.st-note.com/production/uploads/images/117791322/rectangle_large_type_2_350e12d732c28a93160b2ea54c936f56.jpeg?width=1200)
Velo 第24回 コレクションの複数参照フィールドとは
第23回の続編です。
コレクションの通常フィールドのフィールドタイプには複数参照型というものがあります。
これは参照元から複数のデータを登録できるフィールドです。
利用の方法は参照型と同じですが、参照元と参照先の取り扱いが公平になります。
第23回でお話した関数 f の出力が配列になるためです。
例えば参照元の i 番目のアイテムに参照先の j 番目、k 番目のアイテムが登録されれば f ( { i } ) = [ { j } , { k } ] となります。
f の逆関数はもともとこの形ですので、参照元と参照先は公平に扱われることになります。
さて、参照先の Friends コレクションは以下の通りです。
name フィールドがプライマリーフィールドです。
![](https://assets.st-note.com/img/1694569906400-9Q65fCHBX3.png?width=1200)
一方、参照元の Songs コレクションは複数参照フィールドをもち、Friends コレクションのプライマリーフィールドの値を複数選択しています。
![](https://assets.st-note.com/img/1694569957329-OG9DcQzwOV.png?width=1200)
このとき参照元の Friends コレクションには自動でSongs参照フィールドが作成されます。
2つのコレクションが相互に公平に依存しています。
![](https://assets.st-note.com/img/1694570089461-4Votrq0zM7.png?width=1200)
以下の図をご覧下さい。
Friends コレクションで作った動的アイテムページのデータセットで name と photo のフィールドを表示させています。
同時に Songs のデータセットを置き、参照でフィルターをかけテーブルに接続しています。
テーブルにはSongs のデータ song と artist のフィールドが表示されていますが、Jiro のものだけになってフィルターがしっかりかかっています。
![](https://assets.st-note.com/img/1694570275865-Y7F961xHYh.png?width=1200)
一方、以下の図では、Songs コレクションで作った動的アイテムページのデータセットで song と artist のフィールドを表示させています。
このとき同時に Friends のデータセットを置き、参照でフィルターを掛けリピーターに接続しています。
リピーターには song を選んだ Friends の全員の photo と name が表示されています。
![](https://assets.st-note.com/img/1694570642896-hDv0yZIRDN.png?width=1200)
このように複数参照では、参照元、参照先の扱いが公平になります。
Velo開発のご依頼はこちら