mongodb-track-changes-rollback-plugin
Version:
A plugin for tracking create, update, and delete operations with rollback support and snapshots for MongoDB/Mongoose
23 lines (19 loc) • 805 B
text/typescript
import mongoose, { Document, Schema, Model } from 'mongoose';
export interface IChangeSnapshot extends Document {
documentId: mongoose.Types.ObjectId;
collectionName: string;
version: number;
snapshot: Record<string, any>;
createdAt: Date;
}
const ChangeSnapshotSchema = new Schema<IChangeSnapshot>(
{
documentId: { type: Schema.Types.ObjectId, required: true, index: true },
collectionName: { type: String, required: true },
version: { type: Number, required: true },
snapshot: { type: Schema.Types.Mixed, required: true },
},
{ timestamps: { createdAt: true, updatedAt: false } }
);
export const ChangeSnapshot: Model<IChangeSnapshot> =
mongoose.models.ChangeSnapshot || mongoose.model<IChangeSnapshot>('ChangeSnapshot', ChangeSnapshotSchema);