$densify (إكمال النقاط المفقودة)
آخر تحديث: 2026-10-09
$densify (إكمال النقاط المفقودة)
يولّد $densify مستندات عند قيم حقول وسيطة مفقودة، عادة لاستيفاء السلاسل الزمنية — سد الفجوات بخطوات ثابتة ساعية أو يومية أو غيرها. الحقول الرقمية مدعومة أيضًا. حدد الحقل ونطاقًا (step، unit، bounds) واختياريًا partitionByFields.
| الفئة | التجميع والنافذة |
|---|---|
| إصدار MongoDB | 5.1+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $densify: { field: "<field>", range: { step: <step>, unit: <unit>, bounds: <bounds> }, partitionByFields: [ ... ] } }
⚙️ المعلمات
| field | الحقل المراد تكثيفه؛ يجب أن يكون رقميًا أو تاريخًا. |
|---|---|
| range | كائن يحدد step وunit (للتواريخ) ونطاق الحدود. |
| partitionByFields | حقول التقسيم؛ ويُكثَّف كل قسم على حدة. |
القيمة المرجعة:تدفق مستندات مع تعبئة القيم المفقودة
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $densify: إكمال قراءات درجة الحرارة كل ساعة
db.temperature.aggregate([
{ $densify: {
field: 'date',
range: { step: 1, unit: 'hour', bounds: 'full' }
} }
])
المخرجات:
// تُملأ الساعات المفقودة؛ وتُنسخ الحقول الأخرى
📌 ملاحظات
- الحقول الرقمية والتاريخية مدعومة فقط
- يُكمل partitionByFields كل قسم بشكل مستقل
- يمكن أن تكون bounds كاملة أو حدود أقسام أو مصفوفة صريحة
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qلما يُستخدم $densify؟
Aيملأ نقاط الوقت المفقودة بخطوة ثابتة لتعمل الرسوم البيانية والاستيفاء على سلاسل كاملة.
Qأي الوحدات متاحة؟
Aوحدات الوقت تشمل minute وhour وday وweek وmonth وquarter وyear والمزيد.
Qكم مستندًا ينتج $densify؟
Aيعتمد على step وbounds: النطاقات الواسعة بخطوات صغيرة تنتج مستندات كثيرة، لذا راقب الذاكرة.