UNPKG

ts-cache-mongoose

Version:

Cache plugin for mongoose Queries and Aggregate (in-memory, redis)

40 lines (34 loc) 761 B
import { Schema, model, models } from 'mongoose' import type { HydratedDocument, Model, Types } from 'mongoose' import type { Story } from './Story' export interface User { _id: Types.ObjectId name: string role: string age?: number createdAt?: Date updatedAt?: Date stories?: HydratedDocument<Story>[] } export const UserSchema = new Schema<User>( { name: { type: String, required: true, }, role: { type: String, required: true, }, age: { type: Number, }, }, { timestamps: true }, ) UserSchema.virtual('stories', { ref: 'Story', localField: '_id', foreignField: 'userId', }) export const UserModel = (models.User as Model<User> | undefined) ?? model<User>('User', UserSchema)