find (الاستعلام عن مستندات)
آخر تحديث: 2026-10-09
find (الاستعلام عن مستندات)
find هو أمر الاستعلام في MongoDB. تستخدم mongosh عادةً المساعدة db.collection.find(filter, projection)؛ والصيغة الخام هي db.runCommand({ find: 'orders', filter: {...} }). يدعم filter و projection و sort و limit و skip و batchSize. النتيجة مؤشر؛ وid غير الصفري يتطلب getMore لدفعات أخرى.
| الفئة | أوامر الإدارة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
db.orders.find({ status: "shipped" }).limit(10)
db.runCommand({
find: "orders",
filter: { status: "shipped" },
limit: 10
})
⚙️ المعلمات
| filter | مستند شرط الاستعلام. |
|---|---|
| projection | تحديد الحقول (1 تضمين / 0 استبعاد). |
| sort/limit/skip | ترتيب الفرز وحد النتائج والتخطي. |
القيمة المرجعة:يُرجع مؤشرًا؛ يحمل firstBatch المطابقات، وgetMore للدفعات الإضافية عندما لا يكون id صفرًا
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// find: صيغة الأمر الخام
use shop
db.runCommand({
find: 'orders',
filter: { status: 'shipped' },
sort: { createdAt: -1 },
limit: 5
})
المخرجات:
{ cursor: { firstBatch: [ { _id: ObjectId('...'), status: 'shipped' } ], id: 0, ns: 'shop.orders' }, ok: 1 }
📌 ملاحظات
- مساعدة find() تكفي يوميًا؛ الصيغة الخام تضبط batchSize بدقة
- نتائج المؤشر ذات id != 0 تتطلب getMore
- افحص استخدام الفهرس بـ explain()
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qكيف ترتبط findOne بـ find؟
Aتلف findOne حول find مع limit: 1 وتُعيد أول مستند.
Qكيف أجلب كل نتائج المؤشر؟
Aاستدعِ toArray() أو كرّر؛ يصدر المشغّل getMore تلقائيًا عندما يكون id غير صفري.
Qكيف أفحص أداء الاستعلام؟
Aشغّل explain() وافحص استخدام الفهرس مع executionStats.