Mongodb: كيفية الاستعلام باستخدام نطاق زمني


يمكنك استخدام بناء الجملة الأساسي التالي للاستعلام باستخدام نطاق زمني في MongoDB:

 db.collection.find({
    day: {
        $gt : ISODate(" 2020-01-21 "),
        $lt : ISODate(" 2020-01-24 ")
    }
})

سيعيد هذا الاستعلام المحدد جميع المستندات الموجودة في المجموعة التي يكون حقل “اليوم” فيها أكبر من 21-01-2020 وأقل من 24-01-2020.

لاحظ أن $gt يشير إلى “أكبر من” و $lt يشير إلى “أقل من”.

يمكنك أيضًا استخدام $gte لـ “أكبر من أو يساوي” و $lte لـ “أقل من أو يساوي”.

توضح الأمثلة التالية كيفية استخدام هذه الصيغة عمليًا مع بيع المجموعة بالمستندات التالية:

 db.sales.insertOne({day: new Date(" 2020-01-20 "), amount: 40 })
db.sales.insertOne({day: new Date(" 2020-01-21 "), amount: 32 })
db.sales.insertOne({day: new Date(" 2020-01-22 "), amount: 19 })
db.sales.insertOne({day: new Date(" 2020-01-23 "), amount: 29 })
db.sales.insertOne({day: new Date(" 2020-01-24 "), amount: 35 })

مثال 1: البحث عن المستندات بين تاريخين

يمكننا استخدام الكود التالي للعثور على جميع المستندات التي يقع فيها حقل “اليوم” بين تاريخين محددين:

 db.sales.find({
    day: {
        $gt : ISODate(" 2020-01-21 "),
        $lt : ISODate(" 2020-01-24 ")
    }
})

يقوم هذا الاستعلام بإرجاع الوثيقتين التاليتين:

 { _id: ObjectId("618548bc7529c93ea0b41490"),
  day: 2020-01-22T00:00:00.000Z,
  amount: 19 }

{ _id: ObjectId("618548bc7529c93ea0b41491"),
  day: 2020-01-23T00:00:00.000Z,
  amount: 29 }

مثال 2: البحث عن المستندات بعد تاريخ محدد

يمكننا استخدام الكود التالي للعثور على جميع المستندات التي يقع حقل “اليوم” فيها بعد تاريخ محدد:

 db.sales.find({
    day: {
        $gt : ISODate(" 2020-01-22 ")
    }
})

يقوم هذا الاستعلام بإرجاع الوثيقتين التاليتين:

 { _id: ObjectId("618548bc7529c93ea0b41491"),
  day: 2020-01-23T00:00:00.000Z,
  amount: 29 }

{ _id: ObjectId("618548bc7529c93ea0b41492"),
  day: 2020-01-24T00:00:00.000Z,
  amount: 35 }

مثال 3: البحث عن المستندات قبل تاريخ محدد

يمكننا استخدام الكود التالي للعثور على جميع المستندات التي يقع حقل “اليوم” فيها قبل تاريخ محدد:

 db.sales.find({
    day: {
        $lt : ISODate(" 2020-01-22 ")
    }
})

يقوم هذا الاستعلام بإرجاع الوثيقتين التاليتين:

 { _id: ObjectId("618548bc7529c93ea0b4148e"),
  day: 2020-01-20T00:00:00.000Z,
  amount: 40 }

{ _id: ObjectId("618548bc7529c93ea0b4148f"),
  day: 2020-01-21T00:00:00.000Z,
  amount: 32 }

ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة ISODate() هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ الاستعلامات الشائعة الأخرى في MongoDB:

MongoDB: كيفية الاستعلام باستخدام التعبير العادي “أعجبني”.
MongoDB: كيفية التحقق مما إذا كان الحقل يحتوي على سلسلة

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *