.removeFromCollection()Remove one or more members (e.g. a comment) from the specified collection (e.g. the comments of BlogPost #4).
await Something.removeFromCollection(parentId, association)
.members(childIds);
| Argument | Type | Details | |
|---|---|---|---|
| 1 | parentId | The primary key value(s) (i.e. ids) for the parent record(s). Must be a number or string (e.g. '507f191e810c19729de860ea' or 49). Alternatively, an array of numbers or strings may be specified (e.g. ['507f191e810c19729de860ea', '14832ace0c179de897'] or [49, 32, 37]). In this case, all of the child records will be removed from the appropriate collection of each parent record. |
|
| 2 | association | The name of the plural ("collection") association (e.g. "pets") | |
| 3 | childIds | The primary key values (i.e. ids) of the child records to remove. Note that this does not destroy these records, it just detaches them from the specified parent(s). |
| Name | Type | When? |
|---|---|---|
| UsageError | Thrown if something invalid was passed in. | |
| AdapterError | Thrown if something went wrong in the database adapter. | |
| Error | Thrown if anything else unexpected happens. |
See Concepts > Models and ORM > Errors for examples of negotiating errors in Sails and Waterline.
For user 3, remove pets 99 and 98 from the "pets" collection:
await User.removeFromCollection(3, 'pets')
.members([99,98]);
- This method can be used with
await, promise chaining, or traditional Node callbacks.- If the association is "two-way" (meaning it has
via) then the child records will be modified accordingly. If the attribute on the other (e.g. "Pet") side is singular, the each child record's foreign key ("owner") will be set tonull. If it's plural, then each child record's collection will be modified accordingly.