Class: Schema
Defined in: schema/schema.ts:50
Constructors
Constructor
new Schema(
obj
,options
):Schema
Defined in: schema/schema.ts:99
Parameters
obj
Schema definition
Schema
| SchemaDef
options
SchemaOptions
= ...
Settings to build schema
Returns
Schema
Schema
Name
Schema
Example
const schema = new Schema({ name: String, age: { type: Number, intVal: true, min: 18 } });
Properties
fields
fields:
FieldMap
Defined in: schema/schema.ts:78
index
index:
SchemaIndex
={}
Defined in: schema/schema.ts:76
methods
methods:
any
={}
Defined in: schema/schema.ts:73
options
options:
SchemaOptions
Defined in: schema/schema.ts:79
postHooks
postHooks:
any
={}
Defined in: schema/schema.ts:75
preHooks
preHooks:
any
={}
Defined in: schema/schema.ts:74
queries
queries:
SchemaQuery
={}
Defined in: schema/schema.ts:77
statics
statics:
any
={}
Defined in: schema/schema.ts:72
FactoryTypes
static
FactoryTypes:SupportFactoryTypes
Defined in: schema/schema.ts:51
Types
static
Types:SupportTypes
Defined in: schema/schema.ts:61
validators
static
validators:CustomValidations
={}
Defined in: schema/schema.ts:71
Methods
add()
add(
obj
):Schema
Defined in: schema/schema.ts:334
Adds fields/schema type pairs to this schema.
Parameters
obj
Plain object to add, or another schema
Schema
| Record
<string
, unknown
>
Returns
Schema
Schema
Example
const plane = new Schema({ name: String });
const boeing = new Schema({ price: Number });
boeing.add(plane);
// You can add also add fields to this schema
boeing.add({ status: Boolean });
applyDefaultsToObject()
applyDefaultsToObject(
obj
):any
Defined in: schema/schema.ts:199
Applies default values defined on schema to an object instance.
Parameters
obj
any
Returns
any
Method
Example
const schema = new Schema({ amount: { type: Number, default: 5 } });
const result = schema.applyDefaultsToObject({});
console.log(result)
{ amount: 5 }
cast()
cast(
data
,options
):any
Defined in: schema/schema.ts:181
Cast a model instance using schema definition.
Parameters
data
unknown
options
CastOptions
= {}
Returns
any
Method
Example
const schema = new Schema({ name: String, age: {type: Number }});
const result = schema.cast({ name: 'John Doe', age: '34' });
console.log(result)
{ name: 'John Doe', age: 34 }
path()
path(
path
):undefined
|IOttomanType
Defined in: schema/schema.ts:230
Allows access to a specific field.
Parameters
path
string
Returns
undefined
| IOttomanType
Example
const schema = new Schema({ amount: { type: Number, default: 5 } });
const field = schema.path('amount');
console.log(field.typeName);
Number
plugin()
plugin(...
fns
):Schema
Defined in: schema/schema.ts:243
Allows to apply plugins, to extend schema and model features.
Parameters
fns
...PluginConstructor
[]
Returns
Schema
Example
const schema = new Schema({ amount: { type: Number, default: 5 } });
schema.plugin((schema) => console.log(schema.path('amount').typeName));
Number
post()
post(
hook
,handler
):Schema
Defined in: schema/schema.ts:279
Register a hook function. Post hooks are executed after the hooked method.
Parameters
hook
HookTypes
handler
HookHandler
Returns
Schema
Example
const schema = new Schema({ amount: { type: Number, default: 5} } );
schema.post(HOOKS.validate, (doc) => console.log(doc));
pre()
pre(
hook
,handler
):Schema
Defined in: schema/schema.ts:261
Register a hook method. Pre hooks are executed before the hooked method.
Parameters
hook
HookTypes
handler
HookHandler
Returns
Schema
Example
const schema = new Schema({ amount: { type: Number, default: 5} } );
schema.pre(HOOKS.validate, (doc) => console.log(doc));
validate()
validate(
data
,options
):any
Defined in: schema/schema.ts:160
Validate a model instance using the definition of the schema.
Parameters
data
unknown
options
strict?
boolean
Returns
any
Method
Example
const schema = new Schema({ name: String, age: { type: Number, intVal: true, min: 18 } });
const result = schema.validate({name: 'John Doe', age: '34'});
console.log(result)
{name: 'John Doe', age: 34}