import BaseModel from './BaseModel'; import { index, getModelForClass, prop } from '@typegoose/typegoose'; /** * 自增 ID */ @index({ name: 1 }) export default class Counter extends BaseModel { @prop({ required: true }) name: string; @prop({ required: true, default: 1 }) seq: number; public static async getNewCounter(name: string, lean = true) { const counter = await CounterModel.findOneAndUpdate({ name }, { $inc: { seq: 1 } }, { new: true, upsert: true }).lean(lean); return counter?.seq; } } export const CounterModel = getModelForClass(Counter);