discord-multipurpose-bot/scripts/removeDuplicate.js

46 lines
1.3 KiB
JavaScript
Raw Normal View History

2024-09-08 18:57:37 +01:00
const mongoose = require("mongoose");
require("dotenv").config();
const TriviaQuestion = require("../models/TriviaQuestion");
// Connect to MongoDB
mongoose
.connect(process.env.MONGODB_URI)
.then(() => console.log("✅ Connected to MongoDB"))
.catch((err) => console.error("❌ Failed to connect to MongoDB", err));
async function removeDuplicates() {
try {
// Aggregate duplicates
const duplicates = await TriviaQuestion.aggregate([
{
$group: {
_id: "$question", // Group by the question text
count: { $sum: 1 },
ids: { $push: "$_id" }, // Collect ids of the duplicate entries
},
},
{
$match: { count: { $gt: 1 } }, // Match groups with more than one document
},
]);
// Remove duplicates
for (const doc of duplicates) {
const idsToRemove = doc.ids.slice(1); // Keep the first entry and remove the rest
await TriviaQuestion.deleteMany({ _id: { $in: idsToRemove } });
console.log(`Removed duplicates: ${idsToRemove}`);
}
console.log("Duplicates removed");
} catch (err) {
console.error("Error removing duplicates:", err);
} finally {
// Close the connection
mongoose.connection.close();
}
}
removeDuplicates();