Data Types
The JavaScript SDK provides custom classes for SurrealDB-specific data types, ensuring type safety and data integrity when working with the database. For a conceptual overview with usage examples and best practices, see the Value types concept page.
Custom Data Type Classes
RecordId - Type-safe record identifiers with table and ID components
new RecordId(table, id)- Create record IDRecordId.parse(string)- Parse from stringAlso includes
RecordIdRangefor querying ranges
Table - Type-safe table references
new Table<T>(name)- Create typed table referenceUsed in SELECT, CREATE, UPDATE, DELETE operations
DateTime - Datetime values with nanosecond precision
DateTime.now()- Current datetimeDateTime.parse(string)- Parse from ISO string.toDate()- Convert to JavaScript Date
Duration - Time duration with support for multiple units
Duration.parse('5h30m')- Parse from string.toMilliseconds()- Convert to milliseconds
Decimal - Arbitrary precision decimal numbers
new Decimal('19.99')- Create precise decimalPreserves precision during operations
Uuid - Universally unique identifiers
Uuid.v4()- Generate random UUIDUuid.v7()- Generate time-ordered UUID
Range - Generic range values for numeric and date ranges
FileRef - References to files stored in SurrealDB
.bucket- Storage bucket name.key- File key within the bucket
Geometric Types
Geometry - Spatial/geometric data types
GeometryPoint- Single pointGeometryLine- Line between pointsGeometryPolygon- Polygon shapeGeometryMultiPoint,GeometryMultiLine,GeometryMultiPolygonGeometryCollection- Mixed geometry collection
See Also
Value types concept page - Usage guide with type mapping, examples, and best practices
SurrealQL Data Types - Database data model
Utilities - Comparing and converting values