findOne()
جلب مستند واحد findOne()
findOne() ترجع أوّل مستند مطابق للفلتر مباشرة (كائن واحد)، لا cursor.
مفيدة عندما تعرف أن النتيجة يجب أن تكون مستندًا واحدًا (مثل البحث بـ _id فريد أو بريد إلكتروني)، فتوفّر عليك التعامل مع cursor أو مصفوفة.
الصياغة
db.collection.findOne(<filter>, <projection>)
📄 مثال
db.users.findOne({ email: "user@example.com" })
// ترجع null إن لم يوجد تطابق
const u = db.users.findOne({ _id: ObjectId("...") })
if (!u) { /* لم يوجد */ }أهم المعاملات
| المعامل | الوظيفة |
|---|---|
| filter | شرط المطابقة |
| projection | الحقول المراد إرجاعها أو استبعادها (اختياري) |
💡 نصائح عملية
- بلا فهرس مناسب، findOne() تبحث تسلسليًّا حتى تجد أوّل تطابق — أضف فهرسًا على الحقل المستعلَم عنه كثيرًا
⚠️ أخطاء شائعة
- عدم التحقق من قيمة null المرتجعة عند عدم وجود تطابق، ما يسبّب خطأ عند محاولة قراءة خاصية من نتيجة فارغة
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار MONGODB الكامل بالعربي.
📚 للتعمق التقني الكامل بالإنجليزية: MDN Web Docs