updateOne() (تحديث مستند واحد)

آخر تحديث: 2026-10-09

updateOne() (تحديث مستند واحد)

تحدّث updateOne() أول مستند يطابق مرشحًا. إذا طابقت عدة مستندات، فلن يُحدَّث إلا الأول (بالترتيب الطبيعي). تُعبَّر التعديلات بعوامل التحديث ($set/$inc/$push...). تتضمن النتيجة matchedCount و modifiedCount و upsertedId.

الفئةالكتابة
إصدار MongoDB1.0+
لغة المثالmongosh (الطرفية)

📝 الصيغة

db.<collection>.updateOne(<filter>, <update>, { upsert: <bool> })

⚙️ المعلمات

شرط التصفيةكائن شرط يطابق المستندات؛ يدعم معاملات الاستعلام.
عملية التحديثكائن معاملات التحديث، مثل {$set: {age: 22}}.
upsertاختياري. يُدرج مستندًا جديدًا عند عدم وجود تطابق؛ الافتراضي false.

القيمة المرجعة:‏UpdateResult: { acknowledged, matchedCount, modifiedCount, upsertedId }.

▶ مثال

نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):

// updateOne: ضبط عمر Alice إلى 22
db.users.updateOne(
  { name: "Alice" },
  { $set: { age: 22 } }
)

المخرجات:

{ acknowledged: true, matchedCount: 1, modifiedCount: 1, upsertedId: null }

📌 ملاحظات

📚 دروس ذات صلة

❓ الأسئلة الشائعة

Qما الفرق بين updateOne و findOneAndUpdate؟
Aتُعيد updateOne عدّادات فقط (matched/modifiedCount)؛ بينما تُعيد findOneAndUpdate المستند قبل التحديث (أو بعده)، وهو مفيد عند الحاجة إلى القيمة القديمة/الجديدة.
Qماذا يحدث إذا طابقت updateOne مستندات متعددة؟
Aتحدّث أول مستند مطابق فقط. استخدم updateMany لتحديث كل التطابقات؛ وإذا كان الترتيب مهمًا، مرّر خيار sort لتحديد أي مستند يُعتبر الأول.
Qهل يمكن لـ updateOne الجمع بين $set و $inc؟
Aنعم. يمكن أن يحوي مستند التحديث عوامل متعددة، مثل { $set: { status: 'active' }, $inc: { visits: 1 } }، وتُطبَّق ذريًا بالترتيب.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%