Skip to content

Many-to-many relations

JSORM provides methods to manage many-to-many relations directly.

Adds many-to-many relations to an existing model record:

// Assign simple roles
await jsorm.users.attach(userId, "roles", [roleId1, roleId2]);
// With extra columns in pivot table
await jsorm.users.attach(userId, "permissions", [
{ permissionId: perm1.id, active: true },
{ permissionId: perm2.id, active: false },
]);

Removes many-to-many relations from a record:

// Remove specific roles
await jsorm.users.detach(userId, "roles", [roleId2]);
// Remove all roles
await jsorm.users.detach(userId, "roles");

Toggles many-to-many relations. If the relation exists it removes it, if it doesn’t exist it adds it: