findOne() (الاستعلام عن مستند واحد)

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

findOne() (الاستعلام عن مستند واحد)

تُعيد findOne() أول مستند يطابق مرشحًا مباشرةً كمستند وليس كمؤشر، مثل `db.users.findOne({ name: 'Alice' })`. عندما يطابق عدة مستندات، تُعيد الأول بالترتيب الطبيعي؛ وعند عدم التطابق تُعيد null. وهي تتجاوز تكرار المؤشر، مما يجعلها مثالية للبحث بحقل فريد مثل _id أو اسم المستخدم.

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

📝 الصيغة

db.<collection>.findOne(<filter>, <projection>)

⚙️ المعلمات

شرط التصفيةكائن شرط؛ يدعم معاملات الاستعلام.
الإسقاطاختياري. يتحكم في الحقول المُرجَعة: ‏1 تضمين / 0 استبعاد.

القيمة المرجعة:أول مستند مطابق؛ null عندما لا يتطابق شيء.

▶ مثال

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

// findOne: البحث عن مستخدم بواسطة _id
const user = db.users.findOne(
  { _id: ObjectId('64c8a1b20000000000000001') },
  { name: 1, age: 1, _id: 0 }
)
user

المخرجات:

{ name: 'Alice', age: 21 }

📌 ملاحظات

📚 دروس ذات صلة

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

Qهل findOne مثل find().limit(1)؟
Aمتشابهتان، لكن findOne() تُعيد المستند مباشرةً بينما تُعيد find() مؤشرًا للتكرار؛ فضّل findOne() للبحث بالحقول الفريدة.
Qماذا تُعيد findOne عند عدم العثور على شيء؟
Aتُعيد null دون رفع خطأ؛ تُستهلك عادةً بصيغة if (doc) { ... }.
Qهل يمكن أن تُعيد findOne بعض الحقول فقط؟
Aنعم — مرّر إسقاطًا كوسيط ثانٍ، مثل {name: 1}.
Web-Tutorial.com

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

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

100%