nakama/backend/scripts/testDeleteMusic.js

61 lines
2.5 KiB
JavaScript
Raw Normal View History

2025-12-15 21:04:26 +00:00
/**
* Тестовый скрипт для проверки подключения и подсчета записей
* Использование: 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();