import { getModelForClass, modelOptions, prop } from '@typegoose/typegoose' import { dbconn } from '../decorators/dbconn' @dbconn() @modelOptions({ schemaOptions: { collection: 'id_counter' } }) class IDCounterClass { @prop() public _id: string @prop({ default: 1 }) public seq: number static nextCount() { return IDCounter.findOneAndUpdate( { _id: 'userShortId' }, { $inc: { seq: 1 } }, { upsert: true, setDefaultsOnInsert: true, }, ) } } export const IDCounter = getModelForClass(IDCounterClass, { existingConnection: IDCounterClass['db'] })