نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
العودة للتغريدات
مشكلة

MongoServerError: E11000 duplicate key error collection عند تحديث مستند مصفوفة في Mongoose

K
kamel
·١٦ يوليو ٢٠٢٦·1 مشاهدة
أقوم ببناء نظام لربط المستخدمين بالدورات التدريبية باستخدام MongoDB ومكتبة Mongoose. المطلوب: إضافة معرف الدورة التدريبية courseId إلى مصفوفة enrolledCourses داخل كائن المستخدم، والتأكد من عدم تكرار نفس الدورة لنفس المستخدم. المشكلة الحاصلة: عند محاولة تحديث بيانات المستخدم باستخدام findOneAndUpdate وإضافة عنصر جديد للمصفوفة، يظهر الخطأ التالي ويتم رفض العملية بالكامل: MongoServerError: E11000 duplicate key error collection: test.users index: enrolledCourses_1 dup key: { enrolledCourses: ObjectId("64f1a2b3c4d5e6f7a8b9c0d1") }
JavaScript
const mongoose = require('mongoose');

// User Schema Definition
const userSchema = new mongoose.Schema({
    username: String,
    email: { type: String, required: true, unique: true },
    // السطر المشتبه به: تم وضع unique داخل عناصر المصفوفة
    enrolledCourses: [{ 
        type: mongoose.Schema.Types.ObjectId, 
        ref: 'Course',
        unique: true 
    }]
});

const User = mongoose.model('User', userSchema);

// Controller Function
async function enrollUserInCourse(userId, courseId) {
    try {
        const updatedUser = await User.findOneAndUpdate(
            { _id: userId },
            { $addToSet: { enrolledCourses: courseId } }, // استخدام $addToSet لمنع التكرار
            { new: true }
        );
        return updatedUser;
    } catch (error) {
        console.error("Enrollment Error:", error);
    }
}
javascriptمشاكل-mongodbقاعدة-بيانات-mongooseأخطاء-mongo-errorبرمجة-nodejsأخطاء-قواعد-البياناتمشاكل-backendتطوير-شبكاتحل-مشاكل-mongodb

التعليقات (0)

لا يوجد تعليقات بعد — كن أول من يعلّق!

سجّل دخولك لإضافة تعليق

تسجيل الدخول
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر