61 lines
2.5 KiB
JavaScript
61 lines
2.5 KiB
JavaScript
|
|
/**
|
|||
|
|
* Тестовый скрипт для проверки подключения и подсчета записей
|
|||
|
|
* Использование: 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();
|
|||
|
|
|