24 lines
606 B
TypeScript
24 lines
606 B
TypeScript
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'] })
|