@index
Typings:
function index<T extends BeAnObject = BeAnObject>(fields: mongoose.IndexDefinition, options?: IndexOptions<T>): ClassDecorator
Parameters:
| Name | Type | Description |
|---|---|---|
fields Required | mongoose.IndexDefinition | All Fields for this single index |
options | IndexOptions<T> | Overwrite Schema Options, merged with original schema options |
@index is used to set indices on the schema, this decorator acts like schema.index().
note
For Full-Text Search option weights all fields (from fields) have to also be defined in weights.
Example
@index({ article: 1, user: 1 }, { unique: true }) // compound index
@index({ location: '2dsphere' }) // single index with no options
@index({ article: 1 }, { partialFilterExpression: { stars: { $gte: 4.5 } } }) // single index with options
class Location {
@prop()
public article?: number;
@prop()
public user?: number;
@prop()
public stars?: number;
@prop({ type: Number, dim: 2 })
public location?: number[][];
}
Extra
Inheriting indexes from lower classes can be disabled with ModelOption disableLowerIndexes.