عندما نتحدث عن استعلامات MongoDB للحصول على عدد الحقول بناءً على التاريخ، يجب علينا استخدام مرحلة $group
لتجميع البيانات واحتساب العدد المطلوب. في سياق استفسارك، يمكننا كتابة استعلام MongoDB يعادل الاستعلام الذي قدمته في SQL.
لحساب عدد الحقول التي تحمل اسم ‘appId’ بناءً على الشهر واليوم والسنة، يمكن استخدام الاستعلام التالي:
mongodbdb.stats.aggregate([ { $group: { _id: { month: { $month: "$record_date" }, day: { $dayOfMonth: "$record_date" }, year: { $year: "$record_date" } }, count: { $sum: { $cond: [{ $eq: ["$appId", "appId"] }, 1, 0] } } } } ])
في هذا الاستعلام، نستخدم $group
لتجميع البيانات حسب الشهر واليوم والسنة. يتم استخدام $sum
لزيادة العدد عندما تكون قيمة الحقل ‘appId’ مطابقة للقيمة المرغوبة.
أما بالنسبة للاستعلام الثاني، لحساب عدد الحقول ‘appId’ التي يكون ‘criticalThreshold’ فيها أكبر من ‘critical’، يمكننا استخدام الاستعلام التالي:
mongodbdb.stats.aggregate([ { $match: { criticalThreshold: { $gt: "critical" } } }, { $group: { _id: null, count: { $sum: 1 } } } ])
في هذا الاستعلام، نستخدم $match
لتصفية الوثائق التي تفي بشرط معين (حيث يكون ‘criticalThreshold’ أكبر من ‘critical’)، ثم نستخدم $group
لحساب العدد الإجمالي للوثائق المطابقة.
هذه استعلامات MongoDB تقوم بتحقيق المطلوب وتعكس بنية الاستعلام الذي قدمته في SQL.
المزيد من المعلومات
بالطبع، سأقدم لك المزيد من التوضيح حول الاستعلامات وكيفية فهم نتائجها.
استعلام العدد حسب الشهر واليوم والسنة:
mongodbdb.stats.aggregate([ { $group: { _id: { month: { $month: "$record_date" }, day: { $dayOfMonth: "$record_date" }, year: { $year: "$record_date" } }, count: { $sum: { $cond: [{ $eq: ["$appId", "appId"] }, 1, 0] } } } } ])
في هذا الاستعلام، $group
يقوم بتجميع البيانات حسب الشهر واليوم والسنة باستخدام $month
و$dayOfMonth
و$year
على التوالي. يتم استخدام $cond
للتحقق مما إذا كانت قيمة ‘appId’ تساوي ‘appId’، وإذا كانت المطابقة صحيحة، يتم زيادة العدد بمقدار واحد.
استعلام العدد حسب ‘criticalThreshold’ و ‘critical’:
mongodbdb.stats.aggregate([ { $match: { criticalThreshold: { $gt: "critical" } } }, { $group: { _id: null, count: { $sum: 1 } } } ])
في هذا الاستعلام، $match
يقوم بتصفية الوثائق حسب شرط محدد، حيث يتم اختيار الوثائق التي يكون فيها ‘criticalThreshold’ أكبر من ‘critical’. بعد ذلك، $group
يقوم بتجميع النتائج باستخدام _id: null
للحصول على إجمالي الوثائق المطابقة واستخدام $sum: 1
لزيادة العدد بمقدار واحد لكل وثيقة.
يمكنك تغيير الشروط في $match
والحقول المستخدمة في $group
وفقًا لاحتياجات استفساراتك الخاصة. هذه الاستعلامات توفر لك إطاراً للبدء وتوضيح كيفية تحقيق المطلوب في MongoDB.