Cerial
Enums

OrderBy

Sort records by enum field values

Enum fields support orderBy since they are string values — SurrealDB orders them alphabetically:

See Enum Definition for defining enums.

const users = await client.db.User.findMany({
  orderBy: { status: 'asc' },
});

// Multiple enum fields
const items = await client.db.EnumMultiple.findMany({
  orderBy: { role: 'asc', color: 'desc' },
});

// Enum field inside an embedded object
const records = await client.db.EnumWithObject.findMany({
  orderBy: { address: { severity: 'asc' } },
});

Non-enum Literals are excluded from orderBy because they can contain mixed types where ordering is ambiguous. Enums, being string-only, always have well-defined ordering.