Back to Sequelize

HasMany

static/v5/class/lib/associations/has-many.js~HasMany.html

latest19.7 KB
Original Source

publicclass| source

HasMany

Extends:

Association → HasMany

One-to-many association

In the API reference below, add the name of the association to the method, e.g. for User.hasMany(Project) the getter will be user.getProjects(). If the association is aliased, use the alias instead, e.g. User.hasMany(Project, { as: 'jobs' }) will be user.getJobs().

See:

Method Summary

| Public Methods | | public |

add(sourceInstance: Model, targetInstances: Model | Model[] | string[] | string | number[] | number, options: Object): Promise

Associate one or more target rows with this.

| | | public |

count(instance: Model, options: Object): Promise<number>

Count everything currently associated with this, using an optional where clause.

| | | public |

create(sourceInstance: Model, values: Object, options: Object): Promise

Create a new instance of the associated model and associate it with this.

| | | public |

get(instances: Model | Array<Model>, options: Object): Promise<Array<Model>>

Get everything currently associated with this, using an optional where clause.

| | | public |

has(sourceInstance: Model, targetInstances: Model | Model[] | string[] | string | number[] | number, options: Object): Promise

Check if one or more rows are associated with this.

| | | public |

remove(sourceInstance: Model, targetInstances: Model | Model[] | string | string[] | number | number[], options: Object): Promise

Un-associate one or several target rows.

| | | public |

set(sourceInstance: Model, targetInstances: Model | Model[] | string[] | string | number[] | number, options: Object): Promise

Set the associated models by passing an array of persisted instances or their primary keys.

| |

Inherited Summary

| From class Association | | public |

associationType: string

The type of the association.

| | | public |

source: Model

| | | public |

target: Model

| |

Public Methods

publicadd(sourceInstance: Model, targetInstances: Model | Model[] | string[] | string | number[] | number, options: Object): Promise source

Associate one or more target rows with this. This method accepts a Model / string / number to associate a single row, or a mixed array of Model / string / numbers to associate multiple rows.

Params:

| Name | Type | Attribute | Description | | sourceInstance | Model | |

the source instance

| | targetInstances | Model | Model[] | string[] | string | number[] | number |

  • optional

|

A single instance or primary key, or a mixed array of persisted instances or primary keys

| | options | Object |

  • optional

|

Options passed to target.update.

|

Return:

| Promise |

publiccount(instance: Model, options: Object): Promise<number> source

Count everything currently associated with this, using an optional where clause.

Params:

| Name | Type | Attribute | Description | | instance | Model | |

the source instance

| | options | Object |

  • optional

|

find & count options

| | options.where | Object |

  • optional

|

An optional where clause to limit the associated models

| | options.scope | string | boolean |

  • optional

|

Apply a scope on the related model, or remove its default scope by passing false

|

Return:

| Promise<number> |

publiccreate(sourceInstance: Model, values: Object, options: Object): Promise source

Create a new instance of the associated model and associate it with this.

Params:

| Name | Type | Attribute | Description | | sourceInstance | Model | |

source instance

| | values | Object |

  • optional

|

values for target model instance

| | options | Object |

  • optional

|

Options passed to target.create

|

Return:

| Promise |

publicget(instances: Model | Array<Model>, options: Object): Promise<Array<Model>> source

Get everything currently associated with this, using an optional where clause.

Params:

| Name | Type | Attribute | Description | | instances | Model | Array<Model> | |

source instances

| | options | Object |

  • optional

|

find options

| | options.where | Object |

  • optional

|

An optional where clause to limit the associated models

| | options.scope | string | boolean |

  • optional

|

Apply a scope on the related model, or remove its default scope by passing false

| | options.schema | string |

  • optional

|

Apply a schema on the related model

|

Return:

| Promise<Array<Model>> |

See:

publichas(sourceInstance: Model, targetInstances: Model | Model[] | string[] | string | number[] | number, options: Object): Promise source

Check if one or more rows are associated with this.

Params:

| Name | Type | Attribute | Description | | sourceInstance | Model | |

the source instance

| | targetInstances | Model | Model[] | string[] | string | number[] | number |

  • optional

|

Can be an array of instances or their primary keys

| | options | Object |

  • optional

|

Options passed to getAssociations

|

Return:

| Promise |

publicremove(sourceInstance: Model, targetInstances: Model | Model[] | string | string[] | number | number[], options: Object): Promise source

Un-associate one or several target rows.

Params:

| Name | Type | Attribute | Description | | sourceInstance | Model | |

instance to un associate instances with

| | targetInstances | Model | Model[] | string | string[] | number | number[] |

  • optional

|

Can be an Instance or its primary key, or a mixed array of instances and primary keys

| | options | Object |

  • optional

|

Options passed to target.update

|

Return:

| Promise |

publicset(sourceInstance: Model, targetInstances: Model | Model[] | string[] | string | number[] | number, options: Object): Promise source

Set the associated models by passing an array of persisted instances or their primary keys. Everything that is not in the passed array will be un-associated

Params:

| Name | Type | Attribute | Description | | sourceInstance | Model | |

source instance to associate new instances with

| | targetInstances | Model | Model[] | string[] | string | number[] | number |

  • optional

|

An array of persisted instances or primary key of instances to associate with this. Pass null or undefined to remove all associations.

| | options | Object |

  • optional

|

Options passed to target.findAll and update.

| | options.validate | Object |

  • optional

|

Run validation for the join model

|

Return:

| Promise |