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
text/typescript
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);