اذهب إلى المحتوى
  • 0

مشكلة عدم تطابق التاريخ أثناء الاستعلام في mongodb

Tamim Fahed

السؤال

لدي مستندات فيها تاريخ معيّن بالشكل التالي:

{
    "username" : "test123",
    "subDate" : ISODate("2020-10-01T00:00:00.000Z"),
    "phone" : 112334556
}

وأقوم بإجراء الاستعلام التالي:

find({
  "subDate" : { "$gte" : { "$date" : "2020-10-01T00:00:00.000Z"}}
})

ولكن لا يتم إعادة أي مستند، ما الخطأ هنا وكيف يمكنني إجراء هذا الاستعلام حسب التاريخ؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

على الرغم من $date جزء من MongoDB Extended JSON وهذا ما تحصل عليه بشكل افتراضي مع mongoexport لا أعتقد أنه يمكنك حقًا استخدامه كجزء من الاستعلام. مثال على ذلك

db.foo.find({dt: {"$date": "2012-01-01T15:00:00.000Z"}})

ستحصل على هذا الخطأ

error: { "$err" : "invalid operator: $date", "code" : 10068 }

ولكن يمكنك الإستعلام بهذه الطريقة

db.mycollection.find({
    "dt" : {"$gte": new Date("2013-10-01T00:00:00.000Z")}
})

أو بهذه

db.mycollection.find({
    "dt" : {"$gte": ISODate("2013-10-01T00:00:00.000Z")}
})

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

قبل التعامل مع التواريخ في mongodb يجب عليك معرفة مايلي:

  • يجب عليك تمرير كائن Javascript Date.
  • يجب أن يكون صديقًا لـ ISODate
  • تحتاج إلى معالجة التاريخ حتى ISO
  • عادة ما يكون العمل مع التواريخ عملية شاقة دائمًا ، mongodb ليس استثناءً

فيما يلي مقتطف عمل من التعليمات البرمجية ، حيث نقوم بتمرير تاريخ للإستعلام و هنا أستخدم وحدة mongoose وأريد نتائج للصفوف التي تكون سمة التاريخ فيها أكبر من أي (بعد) التاريخ المحدد

var inputDate = new Date(myDate.toISOString());
MyModel.find({
    'date': { $gte: inputDate }
})

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...