/** * Тестовый скрипт для проверки подключения и подсчета записей * Использование: node backend/scripts/testDeleteMusic.js */ require('dotenv').config({ path: require('path').join(__dirname, '../.env') }); const mongoose = require('mongoose'); const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/nakama'; async function testConnection() { try { console.log('🔌 Подключение к MongoDB...'); console.log(' URI:', mongoUri.replace(/\/\/.*@/, '//***@')); await mongoose.connect(mongoUri); console.log('✅ Подключено к MongoDB'); console.log(' База данных:', mongoose.connection.db.databaseName); console.log(''); // Загрузить модели const Track = require('../models/Track'); const Album = require('../models/Album'); const FavoriteTrack = require('../models/FavoriteTrack'); const Post = require('../models/Post'); // Подсчет const tracksCount = await Track.countDocuments(); const albumsCount = await Album.countDocuments(); const favoritesCount = await FavoriteTrack.countDocuments(); const postsWithTracksCount = await Post.countDocuments({ attachedTrack: { $ne: null } }); console.log('📊 Статистика:'); console.log(` - Треков: ${tracksCount}`); console.log(` - Альбомов: ${albumsCount}`); console.log(` - Избранных треков: ${favoritesCount}`); console.log(` - Постов с прикрепленными треками: ${postsWithTracksCount}`); // Показать несколько примеров треков if (tracksCount > 0) { console.log('\n📝 Примеры треков (первые 5):'); const sampleTracks = await Track.find().limit(5).select('title artist fileUrl').populate('artist', 'name'); sampleTracks.forEach((track, index) => { console.log(` ${index + 1}. "${track.title}" - ${track.artist?.name || 'Unknown'} (${track.fileUrl})`); }); } await mongoose.disconnect(); console.log('\n✅ Тест завершен'); process.exit(0); } catch (error) { console.error('\n❌ Ошибка:'); console.error(' Сообщение:', error.message); console.error(' Стек:', error.stack); process.exit(1); } } testConnection();