UNPKG

mongodb-track-changes-rollback-plugin

Version:

A plugin for tracking create, update, and delete operations with rollback support and snapshots for MongoDB/Mongoose

25 lines (21 loc) 899 B
import mongoose, { Document, Schema, Model } from 'mongoose'; export interface IChangeLog extends Document { documentId: mongoose.Types.ObjectId; collectionName: string; operation: 'create' | 'update' | 'delete'; version: number; changes: Record<string, [any, any]>; createdAt: Date; } const ChangeLogSchema = new Schema<IChangeLog>( { documentId: { type: Schema.Types.ObjectId, required: true, index: true }, collectionName: { type: String, required: true }, operation: { type: String, enum: ['create', 'update', 'delete'], required: true }, version: { type: Number, required: true }, changes: { type: Schema.Types.Mixed, required: true }, }, { timestamps: { createdAt: true, updatedAt: false } } ); export const ChangeLog: Model<IChangeLog> = mongoose.models.ChangeLog || mongoose.model<IChangeLog>('ChangeLog', ChangeLogSchema);