mirror of
				https://github.com/aydenjahola/discord-multipurpose-bot.git
				synced 2025-11-04 08:11:34 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
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();
 |