docs: relationship field where query examples

This commit is contained in:
Dan Ribbens
2021-07-01 15:54:05 -04:00
parent b5d272fdbe
commit acfcd20bfa

View File

@@ -62,7 +62,6 @@ The most simple pattern of a relationship is to use `hasMany: false` with a `rel
type: 'relationship', // required type: 'relationship', // required
relationTo: 'users', // required relationTo: 'users', // required
hasMany: false, hasMany: false,
required: true,
} }
] ]
} }
@@ -75,8 +74,11 @@ The shape of the data to save for a document with the field configured this way
} }
``` ```
When making a `GET` request to the api, the query params in the URL would be:
`?where[owner][equals]=6031ac9e1289176380734024`.
#### Has One - Polymorphic #### Has One - Polymorphic
Also called **dynamic references**, in this configuration the `relationTo` field is an array of collection slugs to tell Payload what is allowed. Also known as **dynamic references**, in this configuration the `relationTo` field is an array of slugs to tell Payload what the collections to reference are.
```js ```js
{ {
slug: 'example-collection', slug: 'example-collection',
@@ -86,7 +88,6 @@ Also called **dynamic references**, in this configuration the `relationTo` field
type: 'relationship', // required type: 'relationship', // required
relationTo: ['users', 'organizations'], // required relationTo: ['users', 'organizations'], // required
hasMany: false, hasMany: false,
required: true,
} }
] ]
} }
@@ -102,6 +103,11 @@ The shape of the data to save for a document with more than one relationship typ
} }
``` ```
When making a `GET` request to the api, note the difference in referencing the `owner.value`:
`?where[owner.value][equals]=6031ac9e1289176380734024`.
You can also query for collections where a field has a relationship to a specific slug: `?where[owners.relationTo][equals]=organizations` which would return only documents that have an owner relationship to organizations.
#### Has Many #### Has Many
The `hasMany` tells Payload that there may be more than one collection saved to the field. The `hasMany` tells Payload that there may be more than one collection saved to the field.
```js ```js
@@ -113,7 +119,6 @@ The `hasMany` tells Payload that there may be more than one collection saved to
type: 'relationship', // required type: 'relationship', // required
relationTo: 'users', // required relationTo: 'users', // required
hasMany: true, hasMany: true,
required: true,
} }
] ]
} }
@@ -126,6 +131,9 @@ To save the to `hasMany` relationship field we need to send an array of IDs:
} }
``` ```
When making a `GET` request to the api, the format does not change for arrays:
`?where[owners][equals]=6031ac9e1289176380734024`.
#### Has Many - Polymorphic #### Has Many - Polymorphic
```js ```js
{ {
@@ -156,3 +164,6 @@ To save to `hasMany` relationship of more than one kind of collections, use an a
] ]
} }
``` ```
When making a `GET` request to the api, in the same way as the earlier polymorphic:
`?where[owners.value][equals]=6031ac9e1289176380734024`.