$near (قريب، مرتب حسب المسافة)

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

$near (قريب، مرتب حسب المسافة)

يُرجع $near المستندات الجغرافية مرتبة حسب المسافة من نقطة، تصاعديًا. `{ loc: { $near: { $geometry: { type: 'Point', coordinates: [lng, lat] }, $maxDistance: 1000 } } }`. يتطلب فهرس 2dsphere أو 2d ولا يمكن دمجه مع $near أو $nearSphere آخر في الاستعلام نفسه.

الفئةالمكاني
إصدار MongoDB2.4+
لغة المثالmongosh (الطرفية)

📝 الصيغة

{ <location field>: { $near: { $geometry: <Point>, $maxDistance: <meters> } } }

⚙️ المعلمات

حقل الموضعالحقل الذي يخزّن الموقع.
هندسة Point‏GeoJSON Point بصيغة [خط الطول، خط العرض].
maxDistanceاختياري؛ أقصى مسافة بالأمتار.

القيمة المرجعة:مؤشر المستندات المطابقة (تصاعديًا حسب المسافة)

▶ مثال

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

// $near: المتاجر ضمن 1000 متر من النقطة
db.stores.find({
  loc: { $near: {
    $geometry: { type: 'Point', coordinates: [-73.97, 40.75] },
    $maxDistance: 1000
  } }
})

المخرجات:

// يُرجع المتاجر ضمن 1000 متر، مرتبة حسب المسافة تصاعديًا

📌 ملاحظات

مزيد من الحالات العملية قريبًا.

📚 دروس ذات صلة

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

Qهل نتائج $near مرتبة مسبقًا؟
Aنعم، تصاعديًا حسب المسافة — لا حاجة لفرز إضافي.
Qهل الفهرس إلزامي لـ $near؟
Aنعم، فهرس 2dsphere أو 2d، وإلا فسيحدث خطأ.
Qمتى يجب أن أختار $near بدلًا من $geoWithin؟
Aاختر $near لفرز المسافة؛ و$geoWithin للاحتواء فقط.
Web-Tutorial.com

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

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

100%