Docs: add more details for include
and where
This commit is contained in:
parent
85cd2823da
commit
b4ea8c5b8e
45
README.md
45
README.md
@ -67,10 +67,50 @@ await register({
|
|||||||
* **destroyScope**: use a [sequelize scope](http://docs.sequelizejs.com/en/latest/api/model/#scopeoptions-model) to find rows, then delete them
|
* **destroyScope**: use a [sequelize scope](http://docs.sequelizejs.com/en/latest/api/model/#scopeoptions-model) to find rows, then delete them
|
||||||
* **update**: update a row
|
* **update**: update a row
|
||||||
|
|
||||||
|
## `where` queries
|
||||||
|
It's easy to restrict your requests using Sequelize's `where` query option. Just pass a query parameter.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// returns only teams that have a `city` property of "windsor"
|
||||||
|
// GET /team?city=windsor
|
||||||
|
|
||||||
|
// results in the Sequelize query:
|
||||||
|
Team.findOne({ where: { city: 'windsor' }})
|
||||||
|
```
|
||||||
|
|
||||||
##What do I get
|
You can also do more complex queries by setting the value of a key to JSON.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// returns only teams that have a `address.city` property of "windsor"
|
||||||
|
// GET /team?city={"address": "windsor"}
|
||||||
|
// or
|
||||||
|
// GET /team?city[address]=windsor
|
||||||
|
|
||||||
|
// results in the Sequelize query:
|
||||||
|
Team.findOne({ where: { address: { city: 'windsor' }}})
|
||||||
|
```
|
||||||
|
|
||||||
|
## `include` queries
|
||||||
|
Getting related models is easy, just use a query parameter `include`.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// returns all teams with their related City model
|
||||||
|
// GET /teams?include=City
|
||||||
|
|
||||||
|
// results in a Sequelize query:
|
||||||
|
Team.findAll({include: City})
|
||||||
|
```
|
||||||
|
|
||||||
|
If you want to get multiple related models, just pass multiple `include` parameters.
|
||||||
|
```js
|
||||||
|
// returns all teams with their related City and Uniform models
|
||||||
|
// GET /teams?include=City&include=Uniform
|
||||||
|
|
||||||
|
// results in a Sequelize query:
|
||||||
|
Team.findAll({include: [City, Uniform]})
|
||||||
|
```
|
||||||
|
|
||||||
|
## Full list of methods
|
||||||
|
|
||||||
Let's say you have a `many-to-many` association like this:
|
Let's say you have a `many-to-many` association like this:
|
||||||
|
|
||||||
@ -85,8 +125,9 @@ You get these:
|
|||||||
# get an array of records
|
# get an array of records
|
||||||
GET /team/{id}/roles
|
GET /team/{id}/roles
|
||||||
GET /role/{id}/teams
|
GET /role/{id}/teams
|
||||||
# might also append query parameters to search for
|
# might also append `where` query parameters to search for
|
||||||
GET /role/{id}/teams?members=5
|
GET /role/{id}/teams?members=5
|
||||||
|
GET /role/{id}/teams?city=healdsburg
|
||||||
|
|
||||||
# you might also use scopes
|
# you might also use scopes
|
||||||
GET /teams/{scope}/roles/{scope}
|
GET /teams/{scope}/roles/{scope}
|
||||||
|
Loading…
Reference in New Issue
Block a user