redis-om / Schema
Defines a schema that determines how an Entity is mapped to Redis data structures. Construct by passing in a schema name, a SchemaDefinition, and optionally SchemaOptions:
interface Foo extends Entity {
aString: string,
aNumber: number,
aBoolean: boolean,
someText: string,
aPoint: Point,
aDate: Date,
someStrings: string[],
}
const schema = new Schema<Foo>('foo', {
aString: { type: 'string' },
aNumber: { type: 'number' },
aBoolean: { type: 'boolean' },
someText: { type: 'text' },
aPoint: { type: 'point' },
aDate: { type: 'date' },
someStrings: { type: 'string[]' }
}, {
dataStructure: 'HASH'
})
A Schema is primarily used by a Repository which requires a Schema in its constructor.
| Name | Type |
|---|---|
T |
extends Entity = Record<string, any> |
• new Schema<T>(schemaName, schemaDef, options?)
Constructs a Schema.
| Name | Type |
|---|---|
T |
extends Entity = Record<string, any> |
| Name | Type | Description |
|---|---|---|
schemaName |
string |
The name of the schema. Prefixes the ID when creating Redis keys. |
schemaDef |
SchemaDefinition<T> |
Defines all of the fields for the Schema and how they are mapped to Redis. |
options? |
SchemaOptions |
Additional options for this Schema. |
• get dataStructure(): DataStructure
The configured data structure, a string with the value of either HASH or JSON,
that this Schema uses to store Entities in Redis.
• get fields(): Field[]
The Fields defined by this Schema.
Field[]
• get indexHash(): string
A hash for this Schema that is used to determine if the Schema has been changed when calling createIndex.
string
• get indexHashName(): string
The configured name for the RediSearch index hash for this Schema.
string
• get indexName(): string
The configured name for the RediSearch index for this Schema.
string
• get schemaName(): string
The name of the schema. Prefixes the ID when creating Redis keys. Combined
with the results of idStrategy to generate a key. If name is foo and
idStrategy returns 12345 then the generated key would be foo:12345.
string
• get stopWords(): string[]
The configured stop words. Ignored if useStopWords is anything other
than CUSTOM.
string[]
• get useStopWords(): StopWordOptions
The configured usage of stop words, a string with the value of either OFF, DEFAULT,
or CUSTOM. See SchemaOptions for more details.
▸ fieldByName(name): null | Field
Gets a single Field defined by this Schema.
| Name | Type | Description |
|---|---|---|
name |
Exclude<keyof T, keyof EntityInternal> |
The name of the Field in this Schema. |
null | Field
The Field, or null of not found.
▸ generateId(): Promise<string>
Generates a unique string using the configured IdStrategy.
Promise<string>
The generated id.