find() (الاستعلام عن مستندات)
آخر تحديث: 2026-10-09
find() (الاستعلام عن مستندات)
تستعلم find() عن مستندات مطابقة لشرط وتُعيد مؤشرًا (Cursor). وهي أبسط طرق القراءة: الوسيط الأول هو شرط الاستعلام، والثاني هو الإسقاط الذي يتحكم في الحقول المُعادة. المؤشر كسول — لا تُجلب البيانات إلا عند التكرار (toArray/forEach/next).
| الفئة | القراءة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
db.<collection>.find(<query>, <projection>)
⚙️ المعلمات
| شرط الاستعلام | كائن شرط يدعم معاملات الاستعلام؛ عند إغفاله يطابق الكل. |
|---|---|
| الإسقاط | اختياري. يتحكم في الحقول المُرجَعة: 1 تضمين / 0 استبعاد. |
القيمة المرجعة:مؤشر
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// find: مستخدمون أكبر من 20 عامًا، الاسم فقط
const cursor = db.users.find(
{ age: { $gt: 20 } },
{ name: 1, age: 1, _id: 0 }
)
cursor.forEach(u => print(u.name))
المخرجات:
Alice
Bob
📌 ملاحظات
- يُعيد مؤشرًا وليس مصفوفة؛ استهلكه بـ toArray()/forEach()/next()
- لا يمكن خلط قيمتي 1 و0 في الإسقاط (باستثناء _id)
- find() للقراءة فقط؛ لا تُعدَّل المستندات أبدًا
- في mongosh، تطبع find() المجردة أول 20 مستندًا؛ اكتبها لتصفّح المزيد
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
حذف المستندات والبدء في استخدام Node.js
دمج Express مع Mongoose: بنية تطبيقات الويب
أنماط مونجوس المتقدمة: الأداء والمرونة
نماذج مونغوس وتصميم المخطط
تحسين الأداء ومراقبته: ضبط الأداء على مستوى الإنتاج
واجهة برمجة التطبيقات (API) القائمة على نمط REST في الممارسة العملية: دليل شامل لتصميم عمليات CRUD
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل تُعيد find() مصفوفة؟
Aلا، تُعيد مؤشرًا. حوّله بـ .toArray() (أو كرِّر عليه) عند الحاجة إلى مصفوفة.
Qماذا تُعيد find()؟
Aتُعيد find() مؤشرًا وليس مصفوفة. حوّله بـ toArray()، أو كرِّر عليه بـ forEach/next؛ المؤشر كسول ولا يجلب المستندات من الخادم إلا أثناء القراءة.
Qما وظيفة الوسيط الثاني في find()؟
Aإنه الإسقاط: 1 يتضمن الحقول و0 يستبعدها (الخلط مسموح لـ _id فقط). استخدمه لتقليل الحمولة الشبكية وحجم النتيجة.