Edit Page

.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);

Usage

#
Argument Type Details
1 parentId Number or String 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 String The name of the plural ("collection") association (e.g. "pets")
3 childIds Array 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).
Errors
#
Name Type When?
UsageError Error Thrown if something invalid was passed in.
AdapterError Error Thrown if something went wrong in the database adapter.
Error Error Thrown if anything else unexpected happens.

See Concepts > Models and ORM > Errors for examples of negotiating errors in Sails and Waterline.

Example

#

For user 3, remove pets 99 and 98 from the "pets" collection:

await User.removeFromCollection(3, 'pets')
.members([99,98]);

Edge cases

#

Notes

#
  • 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 to null. If it's plural, then each child record's collection will be modified accordingly.

Is something missing?

If you notice something we've missed or could be improved on, please follow this link and submit a pull request to the sails repo. Once we merge it, the changes will be reflected on the website the next time it is deployed.

Reference

Reference