$geoIntersects (تقاطع الأشكال الهندسية)
آخر تحديث: 2026-10-09
$geoIntersects (تقاطع الأشكال الهندسية)
يجد $geoIntersects المستندات التي يتقاطع شكلها الهندسي GeoJSON مع الشكل المعطى. `{ loc: { $geoIntersects: { $geometry: { type: 'Polygon', coordinates: [...] } } } }`. وعلى خلاف $geoWithin (نقطة داخل منطقة)، يختبر $geoIntersects ما إذا كان الشكلان الهندسيان — نقطتان أو خطان أو مضلعان — يتقاطعان. يتطلب فهرس 2dsphere.
| الفئة | المكاني |
|---|---|
| إصدار MongoDB | 2.4+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ <location field>: { $geoIntersects: { $geometry: <GeoJSON geometry> } } }
⚙️ المعلمات
| حقل الموضع | الحقل الذي يخزّن الموقع. |
|---|---|
| هندسة GeoJSON | كائن GeoJSON: Point أو LineString أو Polygon وما إلى ذلك. |
القيمة المرجعة:مؤشر المستندات المطابقة
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $geoIntersects: المحطات المتقاطعة مع مسار
db.stops.find({
loc: { $geoIntersects: {
$geometry: { type: 'LineString', coordinates: [[0, 0], [1, 1]] }
} }
})
المخرجات:
// يُرجع المحطات المتقاطعة مع LineString (مثل نقطة على المقطع)
📌 ملاحظات
- على خلاف $geoWithin يتعامل مع تقاطع خط-مضلع ومضلع-مضلع
- يتطلب فهرس 2dsphere وإحداثيات GeoJSON
- لا تُرتَّب النتائج
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qكيف يرتبط $geoIntersects بـ $geoWithin؟
A$geoWithin يعني نقطة داخل شكل؛ بينما $geoIntersects يعني تقاطع أشكال — أوسع نطاقًا.
Qهل يمكن لنقطة على حدود المضلع أن تُطابق؟
Aنعم، تُحتسب الحدود كتقاطع.
Qأي فهرس يحتاجه $geoIntersects؟
Aفهرس 2dsphere.