// Простые команды mongosh для исправления рефералов // Скопируйте и выполните в mongosh // ============================================ // ОДНА КОМАНДА ДЛЯ ВСЕГО: // ============================================ db.users.find({ referredBy: { $exists: true, $ne: null }, referralCounted: { $ne: true }, loginDates: { $exists: true, $ne: [] } }).forEach(function(user) { // Получить уникальные даты var uniqueDates = new Set(); if (user.loginDates && Array.isArray(user.loginDates)) { user.loginDates.forEach(function(date) { if (!date) return; var d = new Date(date); d.setHours(0, 0, 0, 0); uniqueDates.add(d.getTime()); }); } // Если есть 2+ уникальные даты, засчитать if (uniqueDates.size >= 2) { var referrer = db.users.findOne({ _id: user.referredBy }); if (referrer) { // Увеличить счетчик рефералов var newCount = (referrer.referralsCount || 0) + 1; db.users.updateOne( { _id: referrer._id }, { $set: { referralsCount: newCount } } ); // Пометить как засчитанного db.users.updateOne( { _id: user._id }, { $set: { referralCounted: true, loginDates: [] } } ); print("✅ ЗАСЧИТАН: " + (user.username || user._id) + " -> " + (referrer.username || referrer._id) + " (счетчик: " + newCount + ")"); } } }); print("\n✅ Готово! Проверьте результат командой:"); print("db.users.find({ referralsCount: { $gt: 0 } }, { username: 1, referralsCount: 1 })");