$densify (إكمال النقاط المفقودة)

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

$densify (إكمال النقاط المفقودة)

يولّد $densify مستندات عند قيم حقول وسيطة مفقودة، عادة لاستيفاء السلاسل الزمنية — سد الفجوات بخطوات ثابتة ساعية أو يومية أو غيرها. الحقول الرقمية مدعومة أيضًا. حدد الحقل ونطاقًا (step، unit، bounds) واختياريًا partitionByFields.

الفئةالتجميع والنافذة
إصدار MongoDB5.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' }
  } }
])

المخرجات:

// تُملأ الساعات المفقودة؛ وتُنسخ الحقول الأخرى

📌 ملاحظات

📚 دروس ذات صلة

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

Qلما يُستخدم $densify؟
Aيملأ نقاط الوقت المفقودة بخطوة ثابتة لتعمل الرسوم البيانية والاستيفاء على سلاسل كاملة.
Qأي الوحدات متاحة؟
Aوحدات الوقت تشمل minute وhour وday وweek وmonth وquarter وyear والمزيد.
Qكم مستندًا ينتج $densify؟
Aيعتمد على step وbounds: النطاقات الواسعة بخطوات صغيرة تنتج مستندات كثيرة، لذا راقب الذاكرة.
Web-Tutorial.com

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

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

100%